import tensorflow as tf
import numpy as np
from IPython.display import Image

tf.ones_like()

创建一个所有元素设置为1的tensor

tf.subtract()

两个矩阵相减

decision_p_comp = tf.subtract(tf.ones_like(decision_p), decision_p)

这一句计算出1-d

tf.stack

矩阵拼接,例如

a = tf.constant([1,2,3])
b = tf.constant([4,5,6])
c = tf.stack([a, b], axis = 0)
d = tf.stack([a, b], axis = 1)
sess = tf.Session()
print(sess.run(c))
print(sess.run(d))
[[1 2 3]
 [4 5 6]]
[[1 4]
 [2 5]
 [3 6]]

tf.expand_dims

在axis位置增加一个维度

tf.tile

在同一维度上进行复制

with tf.Graph().as_default():
    a = tf.constant([1,2],name='a') 
    b = tf.tile(a,[3])
    sess = tf.Session()
    print(sess.run(b))
[1 2 1 2 1 2]

axis 0 代表行 1 代表列

tf.reduce_mean

计算张量的各个维度上的元素的平均值。

x = tf.constant([[1., 1.], [2., 2.]])
tf.reduce_mean(x)  # 1.5
tf.reduce_mean(x, 0)  # [1.5, 1.5]
tf.reduce_mean(x, 1)  # [1.,  2.]
<tf.Tensor 'Mean_2:0' shape=(2,) dtype=float32>

tf.nn.dropout

dropout的作用是为了防止或减轻过拟合,它一般用在全连接层 通过在不同的训练过程中随机扔掉一部分神经元,也就是让某个神经元的激活值以一定的概率p, 让其停止工作,这次训练过程中不更新权值,也不参加神经网络的计算,但是他的权重得保存下来,待下次样本输入时可能会重新工作。 其函数原型: tf.nn.dropout(x, keep_prob, noise_shape=None, seed=None,name=None) 第一个参数为输入,第二个参数设置神经元被选中的概率,

tf.gather

根据索引,从输入张量中依次取元素,构成一个新的张量