Machine Learning

Docker GPU

Submitted by Lizhe on Thu, 07/30/2020 - 09:16

 

插播一个备忘录

sudo apt install docker.io

sudo usermod -a -G docker lizhe

然后正常退出,重启docker保证能正常使用

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

sudo apt-get update

sudo apt-get install -y nvidia-container-toolkit

Rasa 3 NLU

Submitted by Lizhe on Sat, 06/27/2020 - 02:22

The first piece of a Rasa assistant is an NLU model. NLU stands for Natural Language Understanding, which means turning user messages into structured data. To do this with Rasa, you provide training examples that show how Rasa should understand user messages, and then train a model by showing it those examples.

Run the code cell below to see the NLU training data created by the rasa init command:

1

cat data/nlu.md

 

 

lizhe@ubuntu:~/rasa_workspace$ cat data/nlu.md

## intent:greet

- hey

- hello

- hi

Rasa 2 New project

Submitted by Lizhe on Fri, 06/26/2020 - 07:23

The first step is to create a new Rasa project. To do this, run:

1 rasa init --no-prompt

The rasa init command creates all the files that a Rasa project needs and trains a simple bot on some sample data. If you leave out the --no-prompt flag you will be asked some questions about how you want your project to be set up.

 

This creates the following files:

Rasa 1 install

Submitted by Lizhe on Fri, 06/26/2020 - 07:18

Quick Installation

pip3 install rasa

 

1. Create a New Project

rasa init --no-prompt

 

2. View Your NLU Training Data

cat data/nlu.md

 

3. Define Your Model Configuration

cat config.yml

 

4. Write Your First Stories

## story1

Tensorflow 对数几率回归

Submitted by Lizhe on Tue, 08/22/2017 - 05:47

线性回归模型所预测的是一个连续值或任意实数

对数几率回归则用于预测 Y/N 

f(x) = 1/(1+e-x)

log

随着x值(横轴)的变化, y值(纵轴)会在0~1 这个区间内变化, 这里1表示Y, 0表示位N 

这个函数接收单个输入值所以这里如果我们需要使用多个输入值的话,需要将多个值合并成单个值使用

例如如果数据中是 

姓名    年龄    性别

Tom    20       Male

可能需要合并成 Tom_20_Male之后才能放入上面的公式参与计算

这里的例子是计算泰坦尼克的乘客的幸存概率,原始数据为

Tensorflow 线性回归

Submitted by Lizhe on Fri, 08/18/2017 - 03:31

在有监督学习问题中, 线性回归是一种最简单的建模手段.

给定一个数据点集合作为训练集, 线性回归的目标是找到一个与这些数据最为吻合的线性函数.

y(x1,x2,x3,...,xk) = w1x1+w2x2+w3x3+...+wkxk+b

Y 为待预测值

X 是一组独立的预测变量

w 为权值 (可学习)

b 为偏移量 (可学习)

上面的公式用代码表示应该是

Tensorflow 有监督学习

Submitted by Lizhe on Fri, 08/18/2017 - 01:20

有监督的学习在于

使用某个带标注信息的输入数据集合(其中的每个样本都标注了真是的或者期望的输出), 去训练一个推断模型,

该模型能够覆盖一个数据集, 并可对不存在于初始训练集合中的新样本的输出进行干预

这个推断模型实际上是一系列的数学运算, 运算使用的公式是固定的,但是参与运算的值 都是模型的参数, 在训练过程中会被不断更新, 以使模型能够学习,并对其输出进行调整

462

首先需要对模型参数进行初始化. 通常采用对参数随机赋值的方法, 但对于比较简单的模型,也可以将各个参数的初始值全部设置为0

读取训练数据(包括每个数据样本及其期望输出). 通常人们会在这些数据送入模型之前随机打乱样本的次序

在训练数据上执行推断模型. 这样, 在当前模型的参数配置下, 每个训练样本都会得到一个输出值

Tensorflow Summary

Submitted by Lizhe on Thu, 08/17/2017 - 09:27

直接上例子

import tensorflow as tf

data = tf.Variable(0, trainable=False)
increment_data = tf.assign_add(data, tf.constant(1))
tf.scalar_summary('increment_data', data)

sess = tf.Session()
init = tf.initialize_all_variables()
sess.run(init)

summary_writer = tf.train.SummaryWriter('./my_graph', sess.graph)

Tensorflow Name Scope

Submitted by Lizhe on Thu, 08/17/2017 - 08:50

Name scope 是TensorFlow数据流图的核心构件.

当节点过多时, 我们需要一种机制可以有效的组织节点, 降低图的复杂性

Name scope可以帮助用户组织流程图

Name scope允许用户将Op划分到一些较大的, 可以命名的语句块中, 当使用TensorBoard加载数据流图时,

每个名称的作用域都将对其自己的Op进行封装, 从而得到更好的可视化效果

看下面的例子

Tensorflow Variable

Submitted by Lizhe on Thu, 08/17/2017 - 03:51

Tensor对象和Operation对象都是不可变的,如果需要可变对象需要使用Variable对象

a=tf.Variable(3, name="my_variable")

variable对象可以代替Tensor对象传入Tensorflow函数或Operation中使用

例如

add = tf.add(a, 5)

variable对象的初始值通常是0,1或者随机数填充的阶数较高的张量,不过可以使用辅助Op来初始化特定的值

tf.zeros()