TensorFlow深度学习入门笔记(三)基本概念与代码2

关注公众号“从机器学习到深度学习那些事”获取更多最新资料

写在前面

学习建议:以下学习过程中有不理解可以简单查找下资料,但不必纠结(比如非得深究某一个函数等),尽量快速的学一遍,不求甚解无妨。多实操代码,不能只复制代码,或者感觉懂了就只看。熟能生巧,我亦无他,唯手熟尔

今天突然有个想法,准备把部分英文也贴上。因后期是不可避免的要接触英文(论文之类),现在就少量穿插在文章中,大家试着读下看。

常量Constants与变量Variable

前面已经使用过constant来给变量赋值的操作(a = tf.constant([1.0,2.0],name='a')),很简单,这里不多说了

关于变量(tf.Variable),需要多说点,它的作用是保存和更新神经网络中的参数。因为我们需要训练的模型,就是通过不断的更新参数来优化模型的性能(后面会讲前向、后向传播算法等),所以这里必须设置为变量而不能设置为常量。

When we train a model, we use variables to hold and update parameters. Variables are in-memory buffers containing tensors. They must be explicitly initialized and can be saved to disk during and after training. we can later restore saved values to exercise or analyze the model.

TensorFlow中的变量也是需要初始化的,我们之前代码中有初始化为0或为1的方法,IDE中是这样的

 
image
weights = tf.Variable(tf.random_normal([2,3],stddev=2))
# 产生一个2X3的矩阵,矩阵中的元素为均值为0,标准差为2的随机数,符合正态分布。
# tf.random_normal()可以通过mean指定平均值,没有指定默认为0

 

关于随机数和常数的生成,以下两个表了解下

 

 
image.png

上点代码

# tf.Variable
# tf.Tensor.name
# tf.all_variables

# 初始化变量,随机初始化,初始化的数据是正态分布的,标准差是0.1
var = tf.Variable(tf.random_normal([3], stddev=0.1), name='var')
with tf.Session() as sess:
   print(var.name)
   tf.initialize_all_variables().run()
   print(var.eval())
# var:0
# [ 0.05310677 -0.10746826  0.01206805]

var2 = tf.Variable(tf.random_normal([2, 3], stddev=0.1), name='my_var')
var3 = tf.Variable(tf.random_normal([2, 3], stddev=0.1), name='my_var')
with tf.Session() as sess:
   print(var2.name)
   print(var3.name)
'''
my_var:0
my_var_1:0
'''
with tf.Session() as sess:
   for var in tf.all_variables():
       print(var.name)
'''
var:0
my_var:0
my_var_1:0
'''

 

占位符placeholder

占位符在TensorFlow中也很重要,相当于还不知道输入是什么,先占个位置,可以定义占位的类型、维度等信息。

TensorFlow provides a **placeholder operation **that must be fed with data on execution.

x = tf.placeholder(tf.int32)
y = tf.placeholder(tf.int32)

add = tf.add(x, y)
multiply = tf.multiply(x, y)

# feed_dict 这个后面会讲,这里简单理解为对之前的占位符变量赋值
with tf.Session() as sess:
   print("2 + 3 = %d" % sess.run(add, feed_dict={x: 2, y: 3}))
   print("3 x 4 = %d" % sess.run(multiply, feed_dict={x: 3, y: 4}))

 

结束语

今天就整理这几个概念了,这些是TensorFlow中很重要也很基础的概念,努力记住它们吧。

关注公众号“从机器学习到深度学习那些事”获取更多最新资料

posted @ 2019-02-22 13:39  一颗爱学习的花菜  阅读(295)  评论(0编辑  收藏  举报