1.数值计算表示为计算图来进行,使用流式图作为深度学习框架主干。
节点类型:
(1)变量
(2)placeholders(占位符):在执行时间才会接收值的节点。初始化时不分配任何值,仅仅分配一个数据类型,分配一种大小的张量.
(3)数学操作节点:矩阵乘法,加法,激活函数等。
代码实现:
import tensorflow as tf
import numpy as np
'model building
b=tf.Variable(tf.zeros((100,)))
W=tf.Variable(tf.random_uniform(784,100),-1,1))
x=tf.placehoder(tf.float32,(100,784))
h=tf.nn.relu(tf.matmul(x,W)+b)
'model running
sess=tf.Session()
sess.run(tf.initialize_all_variables())
sess.run(h,{x:np.random.random(100,784)})
'loss function
prediction=tf.nn.softmax()
label=tf.placeholder(tf.float32,[100,10])
cross_entropy=-tf.reduce_sum(label*tf.log(prediction),axis=1)
'Optimizer
train_step=tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
for i in range(1000):
batch_x,batch_label=data.next_batch()
sess.run(train_step,feed_dict={x:batch_x,label:batch_label)
Fetches:返回节点输出的图形节点列表
feeds:从图节点到我们想要在模型中运行的实际值的字典映射(实际填写占位符的地方)。
Variable sharing:
Variable Scope(变量作用域):提供一个简单的名称空间方案来避免冲突。
get_variable:创建一个变量或访问一个变量。