2017-10-29 110 views
0

我是张量流的初学者。我想使隐藏层大小可配置。让我们假设只有一个隐藏层,我想如何使tf.layers.dense的输出单位变量?

hidden1 = tf.layers.dense(X, n_hidden, activation=tf.nn.relu) 

其中“n_hidden”是

n_hidden = tf.placeholder(tf.int64) 

,但我还有很长的错误信息,它是结束,

类型错误:INT()参数必须是字符串或数字,而不是“张量”

我搜索器d一段时间后,大多数代码示例都会通过常量或int变量设置此输出单位。我如何使它成为程序的可配置参数?谢谢。

+0

如上所述[https://www.tensorflow.org/api_docs/python/tf/layers/dense],您需要为'units'属性发送一个数值,而不是张量。 将你的代码更改为'n_hidden = 20',并且你将得到一个输出为dim 20的密集网络。 – skadoosh

回答

-1

根据文档,

enter image description here

其中,

单位:整数或长时,输出空间的维数。

在您的代码中,n_hidden应指定隐藏层中的单位数。因此,它应该是一个数字,而不是一个张量。因此,tf.layers.dense根据指定的单位数创建隐藏层。

0

可以拥有它你的程序的输入参数(作为int,像in this question),但对于给定的图形,这个参数是固定的,因此它不能是另一个计算的占位符或结果。如果您想更改隐藏单位的数量,则必须重新创建图表。

+0

可能不是命令行输入参数,而是一个可在运行时更改的可配置参数。例如,我可以有一个循环,遍历一组可能的图层大小,一次运行一个不同图层大小的图形。 –