神经网络基础-人工智能实践

关键词解释:

tensorflow:python中和矩阵有关的一个模块

NN:神经网络,neural network

阶段目标:搭建第一个神经网络,总结搭建八股。

一、基于Tensorflow的NN:用张量表示数据,用计算图搭建神经网络,用会话执行计算图,优化线上的权重(参数),得到模型。

二、张量(tensor):多维数组(列表)  阶:张量的维数

维数          阶         名字                例子

  1. D           0       标量scalar               s=1 2 3
  2. D           1       向量vector              v=[1,3,2]
  3. D           2       二维数组矩阵matrix      m=[[1,2],[2,1]]
  4. 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   使之生效

猜你喜欢

转载自blog.csdn.net/qq_42229034/article/details/81942761