【问题标题】:creating 3D placeholders in tensorflow在 tensorflow 中创建 3D 占位符
【发布时间】:2018-04-23 03:51:11
【问题描述】:

使用 for 循环和 shape 创建 3D 占位符有什么区别,如下所示。

batch = tf.placeholder(tf.int32, shape=(num_relations, None, 3))

对比

batch_placeholders = [tf.placeholder(tf.int32, shape=(None, 3), name='batch_'+str(i)) for i in range(num_relations)]

【问题讨论】:

    标签: tensorflow placeholder


    【解决方案1】:
    batch = tf.placeholder(tf.int32, shape=(num_relations, None, 3))
    

    返回一个给定形状的张量,这里的 None 是一个变量,表示这个维度的大小是稍后定义的。

    batch_placeholders = [tf.placeholder(tf.int32, shape=(None, 3), name='batch_'+str(i)) for i in range(num_relations)]
    

    这将返回一个张量列表,所有这些张量都具有相同的给定形状(可变大小的第一维和大小为 3 的第二维,但它们的名称属性因i 变量而异。

    如果您希望 shape 参数中的尺寸大小也由 i 变量定义,它应该类似于以下 sn-p。只取决于你想做什么。

    batch_placeholders = [tf.placeholder(tf.int32, shape=(i, None, 3), name='batch_'+str(i)) for i in range(num_relations)]
    

    也可以在这里查看:https://www.tensorflow.org/api_docs/python/tf/placeholder

    【讨论】:

    • 第二种方法的形状不一样吗?哪种方法更有效?
    • 不,函数每次调用都会返回一个张量对象。第二次创建i张量对象,第一次只有一个,而且它们的形状不同。
    猜你喜欢
    • 2016-10-03
    • 2019-02-25
    • 2014-09-29
    • 1970-01-01
    • 2023-03-07
    • 2017-10-12
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多