关键词解释:
tensorflow:python中和矩阵有关的一个模块
NN:神经网络,neural network
阶段目标:搭建第一个神经网络,总结搭建八股。
一、基于Tensorflow的NN:用张量表示数据,用计算图搭建神经网络,用会话执行计算图,优化线上的权重(参数),得到模型。
二、张量(tensor):多维数组(列表) 阶:张量的维数
维数 阶 名字 例子
- D 0 标量scalar s=1 2 3
- D 1 向量vector v=[1,3,2]
- D 2 二维数组矩阵matrix m=[[1,2],[2,1]]
- D n 张量tensor t=........,最开始有n个[
张量可以表示0-n阶数组(列表)
Ps:tensorflow的数据类型用的是32位浮点tf.float32 、 tf.int32 ...
import tensorflow as tf #导入tensorflow模块简写为tf
a=tf.constant([1.0,2.0])
b=tf.constant([3.0,4.0])
result=a+b
print result
以上描述的就是一个计算图,只描述运算过程不叙述运算结果。
三、计算图:搭建神经网络的计算过程,只搭建不运算。
四、会话:session:执行计算图中的节点运算
用with结构实现:
with tf.Session() as sess:
Print sess.run(要计算的结果)
#引入模块
import tensorflow as tf
#定义一个2阶张量等于[[1.0,2.0]]
x = tf.constant([[1.0, 2.0]])
#定义一个2阶张量等于[[3.0],[4.0]]
w = tf.constant([[3.0], [4.0]])
#实现xw矩阵乘法
y=tf.matmul(x,w)
#打印出结果 可以打印出这样一句话:Tensor(“matmul:0”, shape(1,1), dtype=float32),
print y
#执行会话并打印出执行后的结果
#可以打印出这样的结果:[[11.]]
with tf.Session() as sess:
print sess.run(y)
五、神经网络的参数
神经网络的参数:是指神经元线上的权重w,用变量表示,一般会先随机生成这些参数。
生成参数的方法是让w等于tf.Variable,把生成的方式写在括号里。 神经网络中常用的生成随机数/数组的函数有:
tf.random_normal() 生成正态分布随机数
tf.truncated_normal() 生成去掉过大偏离点的正态分布随机数
tf.random_uniform() 生成均匀分布随机数
tf.zeros 表示生成全0数组
tf.ones 表示生成全1数组
tf.fill 表示生成全定值数组
tf.constant 表示生成直接给定值的数组
举例
① w=tf.Variable(tf.random_normal([2,3],stddev=2, mean=0, seed=1))
表示生成正态分布随机数,形状两行三列,标准差是2,均值是0,随机种子是1。
② w=tf.Variable(tf.Truncated_normal([2,3],stddev=2, mean=0, seed=1)),
表示去掉偏离过大的正态分布,也就是如果随机出来的数据偏离平均值超过两个标准差,这个数据将重新生成。
③ w=random_uniform(shape=7,minval=0,maxval=1,dtype=tf.int32,seed=1),
表示从一个均匀分布[minval maxval)中随机采样,注意定义域是左闭右开,即包含minval,不包含maxval。
④ 除了生成随机数,还可以生成常量。
tf.zeros([3,2],int32)表示生成[[0,0],[0,0],[0,0]];
tf.ones([3,2],int32)表示生成[[1,1],[1,1],[1,1];
tf.fill([3,2],6)表示生成[[6,6],[6,6],[6,6]];
tf.constant([3,2,1])表示生成[3,2,1]。
注意:
①随机种子如果去掉每次生成的随机数将不一致。
②如果没有特殊要求标准差、均值、随机种子是可以不写的。
注意:
1:我们以后会常用到vim编辑器,为了使用方便,我们可以更改vim的配置文件,使vim的使用更加便捷。
修改vim的配置文件:
Vim ~/.vimrc : 小i进去
我们在vim~/.vimrc 写入:
set ts=4 表示使Tab键等效为4个空格
set nu 表示使vim显示行号 nu是number缩写
按下Esc 输入:wq 按下enter,即课保存退出
2:在vim编辑器中运行Session()会话时,有时会出现“提示warning”,是因为有的电脑可以支持加速指令,但是运行代码时并没有启动这些指令。可以把这些“提示warning”暂时屏蔽掉。屏蔽方法为进入主目录下的bashrc文件,在bashrc 文件中加入这样一句 export TF_CPP_MIN_LOG_LEVEL=2,从而把“提示 warning”等级降低。source 命令用于重新执行修改的初始化文件,使之立即生效,而不必注销并重新登录。
也可以这么操作:
进入:vim ~/.bashrc
在最后一行点右键 点paste
Esc : wq
3:source ~/.bashrc 使之生效