You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TensorFlow调用shape函数仅显示[None,None]无法获取Tensor实际形状怎么办

你调用.shape属性获取的是Tensor的静态形状,这是TensorFlow在计算图构建阶段根据算子逻辑推断出的形状信息,出现None代表对应维度在编译阶段无法确定,属于动态可变维度(比如动态batch size、不定长序列长度等),自然看不到运行时的实际值。

要获取运行时的实际形状,需要调用tf.shape()算子获取Tensor的动态形状,具体用法分场景:

  • 如果是TF2默认开启的Eager Execution模式,两种写法都可以拿到实际形状:
    # 写法1:直接打印动态形状张量
    tf.print(tf.shape(mat))
    # 写法2:转为numpy数组后查看形状
    print(mat.numpy().shape)
    
  • 如果是在@tf.function装饰的图执行代码中,无法直接调用.numpy(),直接打印tf.shape(mat)即可输出运行时的实际维度值:
    @tf.function
    def test_func(mat):
        tf.print(tf.shape(mat))
    

内容的提问来源于stack exchange,提问作者May

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 10:57:05