TensorFlow 非常基础的知识笔记

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

你可能感兴趣的:(TensorFlow 非常基础的知识笔记)