以下情况:
有一个运行tensorflow的生产服务器(C ++)。那里的代码预计只有一个输入Placeholder
,其输入类似于feed_dict:{'input':...}
。我无法更改服务器代码。我只能提供一个新图表,该图表必须有一个名为Placeholder
的{{1}}。
使用tensorflow,我有一些代码可以创建两个具有不同范围的相同神经网络:
input
两个DNN都有输入dnn1 = DNN(scope='dnn1')
dnn2 = DNN(scope='dnn2')
:
Placeholder
和
<tf.Tensor 'dnn1/input:0' shape=(50) dtype=float32>
两个网络都应该获得相同的输入。
如何在图表中使张量<tf.Tensor 'dnn2/input:0' shape=(50) dtype=float32>
流向input
和dnn1/input
?我也无法更改dnn2/input
类,因此最终我的图表将DNN
,dnn1/input
和dnn2/input
作为占位符,但只有input
才会由生产代码提供。
答案 0 :(得分:0)
创建一个输入占位符并将其用作两个网络的输入:
例如DNN1:
hidden1 = (input * W1) + b1
DNN2:
hidden1 = (input * W1) + b1
你能这样做吗?
答案 1 :(得分:0)
您可以修改DNN占位符以默认采用生产输入占位符。因此,您仍然可以随时提供自定义值。
session = tf.Session()
production_input = tf.placeholder(tf.float32, [50])
# Own placeholders
dnn_1_input = tf.placeholder_with_default(production_input, [50])
dnn_2_input = tf.placeholder_with_default(production_input, [50])
# Production environment call
result = session.run([dnn_1_input, dnn_2_input],
feed_dict={production_input: np.arange(50)})