json - TensorFlow 形状和类型推断

标签 json tensorflow protocol-buffers

我了解到可以通过修改来自 protobuf 的 JSON 来对 TensorFlow 进行编程。请参阅here

如果我修改此 JSON,有时会遇到问题,需要手动编辑 JSON 以传播各种输入和输出的正确形状。有没有办法让 TF 自动为我执行此操作,以便我可以通过占位符指定输入,然后自动传播形状和类型?

最佳答案

如果您知道要进行哪种类型的修改,则可以从占位符中删除该形状信息。不确定性会自动传播。例如:

import tensorflow as tf
placeholder = tf.placeholder(dtype=tf.float32, shape=[None])
derived = (placeholder / 3)[1:, None]
print(placeholder.get_shape(), derived.get_shape())

打印:

(TensorShape([Dimension(None)]), TensorShape([Dimension(None), Dimension(1)]))

因此,在 placeholder 的长度内不会保存任何静态形状信息。您甚至可以拥有未知等级的张量。

重新计算静态形状是一个诱人的想法,但目前不支持这一点,因为图构造可能依赖于静态形状信息。例如:

placeholder = tf.placeholder(dtype=tf.float32, shape=[2])
if placeholder.get_shape()[0].value % 2 == 0:
    derived = placeholder
else:
    derived = tf.concat(0, [placeholder, [0]])

这不是推荐的图形构建技术(将 tf.shapecond 一起使用会更好),但它确实发生了。不幸的是,这种静态形状条件图结构并未在元图中捕获。

关于json - TensorFlow 形状和类型推断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42096358/

相关文章:

tensorflow - 了解更高维度的密集层的输出

python - 如何通过 TensorFlow 提要字典传递标量

windows - 如何修复 ‘--go_out: protoc-gen-go: The system cannot find the file specified.’ 错误

ruby-on-rails - Ruby:从 Ruby 生成 Google Protobuf 时间戳?

ios - 如何从 NSArray ios 中获取值

android - 使用 Gson 将 JSON 转换为 Android 中的 ListView

javascript - 如何不获取json调用的所有数据

javascript - IONIC 使用 JSON 格式建议

machine-learning - TensorFlow:非单热向量的最佳方法?

c++ - 当我使用 Protocol Buffer 时,我怎么知道服务器端的 ByteSize()?