深度学习——自学笔记1(Tensorflow)

深度学习——自学笔记1(Tensorflow)

  • tf.nn.softmax()
    将logistic的预测二分类的概率的问题推广到了n分类的概率的问题。

  • tf.matmul()
    tf.matmul(a,b,transpose_a=False,transpose_b=False,adjoint_a=False,
    adjoint_b=False,a_is_sparse=False,b_is_sparse=False,name=None)
    输入矩阵a,b的秩应大于1;transpose_a或transpose_b为真,则在乘法计算之前先进行转置;adjoint_a或adjoint_b为真,则乘法计算之前先进行共轭和转置;a_is_sparse或b_is_sparse为真,则被处理为稀疏矩阵。

  • tf.reduce_sum()
    用于压缩求和。

x=[[1,2],[3,4]]
#tf.reduce_sum(x,axis,keepdims)
tf.reduce_sum(x) ==> 6
tf.reduce_sum(x,axis=0)==> [4,6]
tf.reduce_sum(x, axis=1) ==> [3, 7]
tf.reduce_sum(x, axis=1, keep_dims=True) ==> [[3], [7]]
tf.reduce_sum(x, axis=0, keep_dims=True) ==> [4,6]
  • tf.train.AdamOptimizer()
    tf.train.AdamOptimizer.__init__ (learning_rate=0.001,beta1=0.9,bera2=0.999,epsilon=1e-08,use_locking=False,name=‘Adam’)
  • tf.nn.softmax_cross_entropy_with_logits()——交叉熵计算
    (labels=None, logits=None, dim=-1, name=None)
    labels的每一行都是一个概率分布;logits代表未缩放的对数概率;
    dims: 类的维度,默认-1,也就是最后一维;name: 操作的名称;
    返回值:长度为batch_size的一维Tensor。
    logits与labels的形状必须相同,logits未经过缩放
    交叉熵(cross entropy)的公式如下:
    cross entropy
import tensorflow as tf
#分步计算交叉熵
labels=[[0.1,0.2,0.7],
         [0.2,0.2,0.6]]
logits=[[1,2,7],
         [2,5,6]]
logits_change=tf.nn.softmax(tf.cast(logits,dtype=tf.float32))
res1=-tf.reduce_sum(tf.log(logits_change)*labels,axis=1)
#综合计算交叉熵
res2=tf.nn.softmax_cross_entropy_with_logits_v2(labels=labels,
                                logits=tf.cast(logits,dtype=tf.float32))
#注意logits此处输入的是整数,因此需要转换类型
with tf.Session() as sess:	
      res3=sess.run(res1)
      res4=sess.run(res2)
      print('res3')
      print('res4')
  输出结果为:
==>[1.6091745 1.3265626]
==>[1.6091745 1.3265628]
  • tf.cast()
    tf.cast(x,dtype,name=None)
    将x数据格式转化成dtype(tf.int8; tf.float32 等)数据类型

  • tf.reduce_mean()
    tf.reduce_mean(input_tensor,reduction_indices=None,
    keepdims=False,name=None)
    参数reduction_indices:表示在哪一维上求解
    同理,tf.reduce_max()

猜你喜欢

转载自blog.csdn.net/weixin_43766770/article/details/87442141