请确保这是一个bug。根据我们的规定,
我们只在GitHub上解决代码/文档bug、性能问题、功能请求和构建/安装问题。标签:bug_template
系统信息
- 是否编写了自定义代码(与使用TensorFlow提供的库存示例脚本相反):否
- OS平台和发行版(例如,Linux Ubuntu 16.04):Ubuntu 20.04
- 移动设备(例如iPhone 8,Pixel 2,三星Galaxy)如果问题发生在移动设备上:N/A
- 从哪里安装的TensorFlow(源代码或二进制文件):二进制
- TensorFlow版本(请使用以下命令):2.5.0
- Python版本:3.8.10
- Bazel版本(如果从源代码编译):N/A
- GCC/编译器版本(如果从源代码编译):N/A
- CUDA/cuDNN版本:N/A
- GPU型号和内存:N/A
您可以使用我们的环境捕获工具收集一些此信息。您还可以使用以下命令获取TensorFlow版本:
- TF 1.0:
python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"
- TF 2.0:
python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"
v2.5.0-rc3-213-ga4dfb8d1a71 2.5.0
描述当前行为
tf.shape无法在图模式下推断稀疏Tensor的形状。
描述预期行为
tf.shape应该能够在图模式下推断稀疏Tensor的形状。
- 您是否想提交PR?(是/否):否
- 如果提供候选解决方案,请简要描述您的候选解决方案:
独立代码以重现问题
提供一个最小必要的可复现测试用例,以生成问题。如果可能,请分享一个链接到Colab/Jupyter/任何笔记本。
#!/usr/bin/python3
import tensorflow as tf;
inputs = tf.keras.Input((2,3,4));
print(tf.shape(inputs)); # tf.shape can infer dense tensor
inputs = tf.keras.Input((2,3,4), sparse = True);
print(tf.shape(inputs)); # tf.shape cannot infer sparse tensor
其他信息/日志 包括有助于诊断问题的任何日志或源代码。如果包括回溯,请包括完整的回溯。大型日志和文件应附加。
4条答案
按热度按时间cgyqldqp1#
能够复现Tensorflow 2.10中的问题。请查看gist here,谢谢!
o75abkj42#
@breadbread1984,
文档中提到tf.shape表示**
tf.shape
和Tensor.shape
在急切模式下应该是相同的。使用inputs.shape
代替tf.shape(inputs))
**可以解决你的问题。请查看工作代码中的the Gist。谢谢!doinxwow3#
在图形模式下,批量大小是可以推断的,但在使用tensor.shape时则不行。这就是为什么我在使用功能模型定义构建图形模型时,会使用tf.shape来推断Tensor的形状。
yqyhoc1h4#
我猜这可能是Keras的问题。SparseTensor可以正常工作: