写在前面:
默认已经引入Tensorflow 和Numpy, 且形如:
import numpy as np
import tensorflow as tf
1.ones_like
sess = tf.Session()
ones_like = tf.ones_like([2, 3])
print(sess.run(ones_like))
其会根据传入的tensor的形状,生成个全是1的tensor。
[1 1]
2.ones
ones = tf.ones([2,3])
print(sess.run(ones))
use_list = sess.run(ones)
根据传入的形状,生成一个对应形状的,全部元素为1的张量。
[[1. 1. 1.]
[1. 1. 1.]]
在tensorflow中,还存在zeros和zeros_like ,其参数和结果与上述类似。
3.fill
print(sess.run(tf.fill([2,3], 3)))
该函数是在上述基础上的深化,可以填充任意数值了。
[[3 3 3]
[3 3 3]]
4.random_normal ,random_uniform, linspace
# 正态分布随机数
print(sess.run(tf.random_normal([100])))
# 均匀分布随机数
print(sess.run(tf.random_uniform([100])))
# 生成等差数列
# 必须用随机数表示,否则会报错
print(sess.run(tf.linspace(1.0, 10.0, 100)))
注释很详细,不予赘述。
5.concat
t1 = [[1, 2, 3], [4, 5, 6]]
t2 = [[7, 8, 9], [10, 11, 12]]
print(sess.run(tf.concat([t1, t2], 0)))
print(sess.run(tf.concat([t1, t2], 1)))
输出结果形如:
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
[[ 1 2 3 7 8 9]
[ 4 5 6 10 11 12]]
可以看到,concat传入的axis参数决定了拼接的轴向;当axis=0,表示按照列进行拼接,当axis=1,表示按照行拼接。
6.tf.diag,返回一个给定对角元素的对角tensor
diagonal = [1,2,3,4]
print(sess.run(tf.diag(diagonal)))
输出:
[[1 0 0 0]
[0 2 0 0]
[0 0 3 0]
[0 0 0 4]]
7.reduce_sum ,规约累加函数
t1 = [[1, 2, 3], [4, 5, 6]]
print(sess.run(tf.reduce_sum(t1, axis=0)))
print(sess.run(tf.reduce_sum(t1, axis=1)))
输出:
[5 7 9]
[ 6 15]
可以看出,当axis=0的时候,每列自己的结果累加;而axis=1 则是按照行自身累加,但最终得到结果的形状,都是列向量。