目录
1.2.4 直接新建tensor 小括号里各种参数形式对应的典型应用
1.3.1 直接给出每个维度的索引号,多个中括号,取单一元素
1.3.2 numpy-style indexing(推荐)
1.3.5 start: end : step ::step 隔着取
2.1 reshape 改变view 只改变数据理解方式 不改变内容
1.tensorflow 数据类型
list
np.array
tf.Tensor: 支持自动求导 方便深度学习(一般指rank>2 )
TF 包括的数据类型: int float double bool string
1.1 tensor 属性,数据转换
a.device 查看目标在哪个设备上(cpu/gpu)
aa=a.gpu() 把cpu上的a 转换到gpu上的aa 操作符往往根据参数自动选择
b.numpy() 把tensor b 转换成 numpy numpy类型一定在cpu上
b.ndim 或者 tf.rank(b) 判断维度
b.shape 返回形状
isinstance(a,tf.tensor)不推荐 or tf.is_tensor(a) 判断数据类型是不是tensor
a.dtype==float32 判断数据类型
aa=tf.convert_to_tensor(a,dtype=tf.int32) 转换成tensor 默认64位需要手动定义成32位
tf.cast(aa,dtype=tf.float32) tf数据转换
bb=tf.cast(b,dtype=tf.bool)
b=tf.Variable(a,name='input_data') b.trainable (可优化的量,自动记录梯度信息)
int(tensor) tensor是一个标量的话 可以直接转化成numpy数据
1.2 创建tensor
1.2.1 tf.convert_to_tensor()
tf.convert_to_tensor(np.ones([2,3])) # 默认float64 [2,3]被视为data
tf.convert_to_tensor(np.zeros([2,3])) # 默认float64
tf.convert_to_tensor([1,2])# 默认int32
tf.convert_to_tensor([1,2.])# 默认float64
tf.convert_to_tensor([[1],[2.]])# 默认float32
1.2.2 直接新建
tf.zeros([1,2]) #[1,2]指shape float32
tf.zeros_like(a) #shape 与 a 一样
tf.ones()
tf.fill([2,2],9) # 元素全部填充为9
1.2.3随机化初始化(均匀分布、正态分布)
正态分布 tf.random.normal([2,2],mean=1,stddev=1)
截断正态分布 tf.random.truncated_normal([2,2],mean=1,stddev=1)
均匀分布 tf.random.uniform()
随机打散, 照片与索引一一对应
tf.constant()
1.2.4 直接新建tensor 小括号里各种参数形式对应的典型应用
(1)[]: loss,accuracy 都是标量
(2)[out_dim] 向量 Bias 线性回归的b
(3)矩阵 [b,vec_dim] 线性回归的w
(4)dim=3的tensor 自然语言处理的把一段话每个句子的单词转换为长度为5的向量
维度: 句子数目 每句含单词数目 每个单词长度 三维
(5)dim=4 tensor 图片保存 [b,h,w,c] 例如RGB格式一张图片 [1,h,w,3]
(6)dim=5 tensor meta-learning 多一个维度:任务数量