我正在尝试为OpenAI gym实现简单的Q网络。我得到了州政府的职位。状态用整数表示。我要一个热矢量。所以,我这样做:
input_state = tf.placeholder(tf.int64, shape=(None))
state_oh = tf.one_hot(input_state, env.observation_space.n)
我正在使用(None
),除了()
,因为我想将批处理传递到列车网络。在
我原以为state_oh
的形状像(None, 16)
,但我得到了<unknown>
。这对我来说是个问题,因为我实现了创建完全连接层的函数,它使用tensor.shape
来确定输入张量的形状:
这不适用于<unknown>
形状。在
我如何将一批整数传递给Tensorflow并得到它的第二维(一个热向量的长度)?我希望不要显式地将输入的大小传递给dense()
。在
我发现,如果我像这样定义占位符:
我犯了一个非常愚蠢的错误。正确的形状是},意思是“任何形状”。在
[None]
,而是(None)
,因为(None)
相当于{如果占位符的形状正确,
state_oh
的形状将如预期的那样是(?, 16)
。在相关问题 更多 >
编程相关推荐