变量类型:
Variable:变量
constant:常量
指定参数
name:变量在tensorflow中的名字
dtype:变量的数据类型 可以是tf.float32, tf.int32之类的
e.g.
import tensorflow as tf
a=tf.Variable(0,dtype=int32) #类型为int32的变量 ,赋初值为0
b=tf.constant(36,name="b") #名字为"b"的常量,值恒为36
c=tf.Variable(a-b,name="c") #变量可以通过其他变量运算的结果赋初值
init=tf.global_variables_initializer #一个对所有变量初始化的函数
session=tf.Session() #一个封装了所有变量、常量的环境
session.run(init) #调用init函数
sesson
对session比较好的解释:tensorflow文档。注意销毁session的方式:session.close()
session.run(function):执行函数
session.run(variable):计算某个变量的值
占位符
占位符可以先分配内存,稍后赋值。对占位符进行赋值一般在session.run中进行,值在feed_dict中。
xx=tf.placeholder(tf.int32,name="xx") #分配一块int32大小的内存,没有数据
res=session.run(xx**2,feed_dict={xx:30}) #先将x赋值为30,然后平方,结果赋值给res
feed_dict={占位符:具体的值}
矩阵
初始化(a,b)的矩阵:
常量:
x=tf.constant(np.random.randn(a,b), name="x")
变量:
x=tf.get_variable(name="x", shape=[3,2], dtype=tf.float32,initializer=tf.zeros_initializer())
全1:
tf.ones([a,b]):
全0:
tf.zeros([a,b])
相乘:
tf.matmul(A,B)
相加:
tf.add(A,B)
重要函数
sigmoid:
tf.sigmoid
relu:
tf.nn.relu
softmax计算cost function
tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(logits = ..., labels = ...))
其中,reduct_mean表示向量中各项总和,logits是z3不是a3
优化
optimizer = tf.train.GradientDescentOptimizer(learning_rate = learning_rate).minimize(cost)
_ , c = sess.run([optimizer, cost], feed_dict={X: minibatch_X, Y: minibatch_Y})
让cost最小,通过gradient descent进行优化。
X,Y是在cost的计算函数(forward_propagation)中出现过的参数。
_存储optimizer的值,不关心;c存储cost的值
tensorflow一般步骤
1、创建tensorflow变量/常量
2、创建对这些变量进行操作的函数
3、创建初始化这些变量的函数(初始化只分配内存,不计算)
4、创建session
5、在session中执行初始化函数
6、在session中执行其他函数(计算)