参考CSDN博客
1. softmax函数
在mnist任务训练过程中,softmax函数计算输入样本属于各个类别的概率,学习的参数是,权重参数W和偏置参数b。
具体而言,输入样例属于各个类别的证据为:
用softmax函数可以将证据转化为概率:
3. TensorFlow基本概念
(1)占位符placeholder。
使用占位符可以创建一种具体类型的变量,例如:
x = tf.placeholder(tf.float32, [None, 784])
注意:
1)此处的“None”表示此张量的第一个维度可以是任何长度的。
2)占位符x并不是一个特定的值,程序运行时需要给占位符分配具体的值。类似地,程序运行前需要对变量进行初始化。如:
# 初始化
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
# 赋值:
for i in range(1000):
batch_xs, batch_ys = mnist.train.next_batch(100)
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
(2)变量Variable
变量代表代表一个可修改的张量,它是存放在TensorFlow的用于描述交互性操作的图中。它们可以用于计算输入值,也可以在计算中被修改。如:
W = tf.Variable(tf.zeros([784,10]))
(3)Fetch与Feed操作
fetch用于取回操作的输出内容,feed机制可以临时替代图中的任意操作中的tensor
4. TensorFlow中程序的运行
TensorFlow在后端依赖于高效的C++实现进行运算,程序通过session与后端连接。一般使用TensorFlow程序的流程是先创建一个图,然后在session中启动它。即是说,在TensorFlow中,使用Python代码构建一个可以在外部运行的计算图,并安排计算图的哪一部分应该被运行。最终在计算时,将整个图在python外部运行。
待处理工作:
1. 在计算交叉熵损失函数时,为了数值计算稳定,使用
tf.nn.softmax_cross_entropy_with_logits。理解。
2. 占位符能否修改。