Python TensorFlow,张量的形状,静态形状与动态形状,set_shape(),reshape()

TensorFlow中,张量具有静态形状和动态形状
静态形状:创建一个张量或者由操作推导出一个张量时,初始状态的形状
    tf.Tensor.get_shape:获取静态形状
    tf.Tensor.set_shape():更新Tensor对象的静态形状,通常用于在不能直接推断的情况下
动态形状:一种描述原始张量在执行过程中的形状(动态变化)
    tf.reshape:创建一个具有不同动态形状的新张量

 

demo.py(张量的形状,静态形状,动态形状,set_shape(),reshape()):

import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'  # 设置警告级别


# 张量的形状分为静态形状和动态形状
# 对于静态形状来说,一旦张量形状固定了,就不能再次设置静态形状了,并且不能跨维度修改 1D->1D 2D->2D
# 动态形状会创建一个新的张量,改变动态形状时一定要注意元素数量要匹配  1D->2D  1D->3D

plt = tf.placeholder(tf.float32, [None, 2])
print(plt)  # Tensor("Placeholder:0", shape=(?, 2), dtype=float32)

# set_shape() 修改静态形状(只能修改一次,且不能跨维度修改),固定静态形状
plt.set_shape([3, 2])
print(plt)  # Tensor("Placeholder:0", shape=(3, 2), dtype=float32)

# plt.set_shape([2, 3]) # 静态形状只能修改一次,不能再次修改


# reshape() 修改动态形状会创建一个新的张量,可以跨维度修改,但元素数量要匹配
plt_reshape = tf.reshape(plt, [2, 3])  # [-1, 3] -1表示行数可以任意。
print(plt_reshape)  # Tensor("Reshape:0", shape=(2, 3), dtype=float32)

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值