目录

矩阵生成

tf.ones | tf.zeros

tf.ones_like | tf.zeros_like

tf.fill

print(sess.run(tf.fill([2,3],2)))
#[[2 2 2],
# [2 2 2]]

tf.constant

tf.random_normal | tf.truncated_normal | tf.random_uniform

tf.get_variable

get_variable(name, shape=None, dtype=dtypes.float32, initializer=None,
                 regularizer=None, trainable=True, collections=None,
                 caching_device=None, partitioner=None, validate_shape=True,
                 custom_getter=None):
如果在该命名域中之前已经有名字=name的变量,则调用那个变量;如果没有,则根据输入的参数重新创建一个名字为name的变量。在众多的输入参数中,有几个是我已经比较了解的,下面来一一讲一下

  • name: 这个不用说了,变量的名字
  • shape: 变量的形状,[]表示一个数,[3]表示长为3的向量,[2,3]表示矩阵或者张量(tensor)
  • dtype: 变量的数据格式,主要有tf.int32, tf.float32, tf.float64等等
  • initializer: 初始化工具,有tf.zero_initializer, tf.ones_initializer, tf.constant_initializer, tf.random_uniform_initializer, tf.random_normal_initializer, tf.truncated_normal_initializer等

矩阵变换

tf.shape

tf.expand_dims

tf.pack

tf.pack(values, axis=0, name=”pack”) 

Packs a list of rank-R tensors into one rank-(R+1) tensor 将一个R维张量列表沿着axis轴组合成一个R+1维的张量。

# 'x' is [1, 4]
  # 'y' is [2, 5]
  # 'z' is [3, 6]
  pack([x, y, z]) => [[1, 4], [2, 5], [3, 6]]  # Pack along first dim.
  pack([x, y, z], axis=1) => [[1, 2, 3], [4, 5, 6]]

tf.concat

tf.sparse_to_dense

tf.random_shuffle

tf.argmax | tf.argmin

tf.equal

tf.cast

tf.matmul

用来做矩阵乘法。若a为lm的矩阵,b为mn的矩阵,那么通过tf.matmul(a,b) 结果就会得到一个l*n的矩阵 不过这个函数还提供了很多额外的功能。我们来看下函数的定义:

matmul(a, b,
           transpose_a=False, transpose_b=False,
           a_is_sparse=False, b_is_sparse=False,
           name=None):
可以看到还提供了transpose和is_sparse的选项。 如果对应的transpose项为True,例如transpose_a=True,那么a在参与运算之前就会先转置一下。 而如果a_is_sparse=True,那么a会被当做稀疏矩阵来参与运算。

tf.reshape