一 张量
首先,学习张量要注意两个点,张量的形状和维度(阶)
1 阶
由上图我们可以直到,想要判断是几阶,可以看最左边有几个左括号,0阶没有括号,一阶有一个,两阶有两个,三阶有三个,以此类推·······
2 形状
shape指明每一层有多少个元素。
比如[2,3,4]是指第一层2个元素,第二层3个元素,第三层4个元素,通过这个我们就可以知道这个张量一共有2 × 3 × 4=24 个元素。而且它有3层,因此可以知道这个张量的rank=3
注意:读取元素,从外括号往内括号读
import tensorflow as tf
# 定义了一个张量,有6个元素,设置他的形状是[2.3]
a = tf.constant([1, 2, 3, 4, 5, 6], shape=[2,3])
with tf.Session() as session:
print(session.run(a))
输出结果:
[[1 2 3] [4 5 6]]
3 张量的其他用法
1 .tf.random_normal()函数用于从“服从指定正态分布的序列”中随机取出指定个数的值。
其中主要参数如下:
tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
shape: 输出张量的形状,必选
mean: 正态分布的均值,默认为0
stddev: 正态分布的标准差,默认为1.0
dtype: 输出的类型,默认为tf.float32
seed: 随机数种子,是一个整数,当设置之后,每次生成的随机数都一样
name: 操作的名称
2. tf.Variable()函数是形成一个变量。
其中主要参数如下:
tf.Variable( initial_value=None, trainable=None, validate_shape=True, caching_device=None,
name=None, variable_def=None, dtype=None, import_scope=None, constraint=None,
synchronization=tf.VariableSynchronization.AUTO,
aggregation=tf.compat.v1.VariableAggregation.NONE, shape=None
)
initial_value:所有可以转换为张量的类型,是变量初始值
trainable:只有当trainable为 true 时才能对其使用Optimizer,默认为true。在迁移学习指定某些网络结构不被训练。
collections:类型为 list 指定该变量的类型
在 Tensorflow 中,变量的定义与初始化是分开的,一开始,tf.Variable()得到的是张量,而张量并不是具体的值,而是计算过程。
在 Tensorflow 中变量只有被定义为(Variable)变量后才是变量