TensorFlow 占位符依赖于其他占位符
Posted
技术标签:
【中文标题】TensorFlow 占位符依赖于其他占位符【英文标题】:Tesorflow placeholder depends on other placeholder 【发布时间】:2017-10-12 14:40:10 【问题描述】:我有一个占位符,其形状取决于另一个占位符。 在占位符初始化期间如何连接它们?
nUsers = tf.placeholder(tf.float32, [None, 1])
p = tf.placeholder(tf.float32, [None, 10 , ???] )
...在 ???我需要将 nUsers 中存在的数字给定的大小用于该批次的该项目。
【问题讨论】:
【参考方案1】:您可以使用x.get_shape()
(check the difference 在tf.shape(x)
之间)轻松获得张量的形状。所以你需要这样的东西:
import tensorflow as tf
import numpy as np
nUsers = tf.placeholder(tf.float32, [None, 1])
p = tf.placeholder(tf.float32, [None, 10 , nUsers.get_shape()[0]])
with tf.Session() as sess:
print sess.run(p, nUsers: np.ones((2, 1)), p: np.ones((3, 10, 2)))
【讨论】:
在这段代码中,p 的形状由 nUser 的形状决定。但是如果 p 的形状是由 nUsers 的值决定的呢? @D.Giunchi 这将是一个完全不同的问题,有不同的答案。同样在该问题中,您需要指定如何在此处使用张量的值。 但是如果你检查我原来的问题,有人提到我需要来自 nUsers 的值,而不是用于确定另一个形状的形状。 nUsers 基本上是一个数字,在每批中我都有一个向量。对于批次的每个条目,我都有许多执行特定任务的用户,我使用这个数字来确定另一个占位符的大小。我继续尝试使用 None (因为它会有所不同),但我遇到了其他问题,让我认为我应该考虑使用恒定大小的占位符。所以我的解决方案是填充第二个数组并考虑它的恒定大小。 @D.Giunchi 我正在寻找和你一样的人。你解决了这个问题吗?可以分享一下解决方法吗?以上是关于TensorFlow 占位符依赖于其他占位符的主要内容,如果未能解决你的问题,请参考以下文章
Keras 输入层和 TensorFlow 占位符之间的区别
馈送占位符时的TensorFlow InvalidArgumentError