1、TensorFlow(tf)变量的类型及使用方法
(1) tf.constant()
先定义变量,后直接使用 tf.Session()
import tensorflow as tf
# Define constant tensors
a = tf.constant(2)
b = tf.constant(3)
with tf.Session() as sess:
print( sess.run(a+b) ) # 5
(2) tf.placeholder()
先定义变量,再定义操作,最后使用 tf.Session() 及 feed_dict
import tensorflow as tf
a = tf.placeholder(tf.int16)
b = tf.placeholder(tf.int16)
# Define some operations
add = tf.add(a, b)
with tf.Session() as sess:
print( sess.run(add, feed_dict={a:2, b:3}) ) # 5
2、Eager API 用 tfe 实现 sess 的作用
(1)显示 Tensor
import tensorflow as tf
import tensorflow.contrib.eager as tfe
# Set Eager API
tfe.enable_eager_execution()
# Define constant tensors
a = tf.constant(2)
b = tf.constant(3)
print(a+b) # 5
# Define matrix tensor
a = tf.constant([[2., 1.], [1., 0.]], dtype=tf.float32)
b = np.array([[3., 0.], [5., 1.]], dtype=np.float32)
c = a + b
d = tf.matmul(a, b)
print("a + b =%s"%c) # [ [5., 1.], [6., 1.] ]
print("a * b =%s" % d) # [ [11., 1], [3., 0.] ]
(2)用于训练
有点难以总结,可以参照代码
3、batch_size 的作用
可以参考
batch_size 盲目小,越难收敛
batch_size 盲目大,对参数的修正越缓慢
4、机器学习中常见的计算准确率三步曲
假设 y 为正确便签;pred 为预测标签。 一般均为 [ [1, 0, 0, ... 0] , [0, 0, 1, 0 ...., 0], ...[0, 1, 0, 0,...0] ] 形式。
假设 y = [ [1, 0, 0], [1, 0, 0], [0, 0, 1], [0, 1, 0] ]; (即共有4个样例,3种类型)
pred = [ [0.8, 0.1, 0.1], [0.2, 0.1, 0.7], [0.2, 0.3, 0.5], [0.1, 0.6, 0.3] ]
(1)找标签对应位置即为类别
a = tf.argmax(y, 1) # [ 0, 0, 2, 1]
b = tf.argmax(pred, 1) # [0, 2, 2, 1]
(2)查看对应是否相等
c = tf.equal(a, b) # [ True, False, True, True]
(3)计算准确率
acc = tf.reduce_mean( tf.cast(c, tf.float32) ) # 0.75
网友评论