关于张量:
对Tensorflow中tensor的理解
tf.ones(shape,type=tf.float32,name=None)
tf.zeros([2, 3], int32)
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3"
#上面两行据说可以去掉由于numpy版本高而输出的warnings
import tensorflow as tf
#产生尺寸为shape的矩阵
x = tf.zeros(shape = [2,3])
sess = tf.InteractiveSession()
print(sess.run(x))
运行结果:
[[0. 0. 0.]
[0. 0. 0.]]
tf.ones_like(tensor,dype=None,name=None)
tf.zeros_like(tensor,dype=None,name=None)
创建和别的tensor类型和大小都一致的张量
y = tf.zeros_like(x)
print(sess.run(y))
运行结果
[[0. 0. 0.]
[0. 0. 0.]]
tf.fill(shape,value,name=None)
创建一个值可以自己规定的,尺寸为shape的矩阵
x = tf.fill([2,3],value=3)
#注意这里不是shape=[2,3]
print(sess.run(x))
运行结果
[[3 3 3]
[3 3 3]]
tf.constant(value,dtype=None,shape=None,name=’Const’)
创建一个常量tensor,按照给出value来赋值,可以用shape来指定其形状。value可以是一个数,也可以是一个list。
a = tf.constant(2, shape=[2])
b = tf.constant(2, shape=[2, 2])
c = tf.constant([1, 2, 3], shape=[6])
d = tf.constant([1, 2, 3], shape=[3, 2])
print(sess.run(a))
print(sess.run(b))
print(sess.run(c))
print(sess.run(d))
运行结果
[2 2]
[[2 2]
[2 2]]
[1 2 3 3 3 3]
[[1 2]
[3 3]
[3 3]]
tf.random_normal(shape,mean=0.0,stddev=1.0,dtype=tf.float32,seed=None,name=None)
tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
tf.random_uniform(shape,minval=0,maxval=None,dtype=tf.float32,seed=None,name=None)
random_normal: 正太分布随机数,均值mean,标准差stddev
truncated_normal:截断正态分布随机数,均值mean,标准差stddev,不过只保留[mean-2*stddev,mean+2*stddev]范围内的随机数
random_uniform:均匀分布随机数,范围为[minval,maxval]
其他基础知识
2.Variable
W = tf.Variable(tf.zeros(shape=[1,2]))
sess = tf.InteractiveSession()
sess.run(tf.initialize_all_variables()) # 对variable进行初始化
print(sess.run(W))
variable和Tensor不同的是它必须在初始化之后才有数值。
运行结果:
[[0. 0. 0.]
[0. 0. 0.]]