在张量流的占位符中向“ None +”添加特定尺寸是什么意思?

问题描述 投票:0回答:1

在状态尺寸变量下面的代码中-> state_dim被添加到(None,)。当我们已经将张量大小指定为可变的时,为什么还要添加它呢?

states = tf.placeholder('float32',(None,)+state_dim,name="states")
actions = tf.placeholder('int32',name="action_ids")
cumulative_rewards = tf.placeholder('float32', name="cumulative_returns")
python tensorflow reinforcement-learning
1个回答
0
投票

在不知道确切上下文的情况下,很难回答。但通常在模型训练应用程序中,第一个维度是批处理大小的占位符,该变量通常在运行时才知道。但是,您正在处理的数据的维度通常是预定义的,需要将其编码到图中才能执行。

因此,如果state_dim表示且图像的尺寸为(300, 300, 3),,则所得占位符尺寸将变为(None, 300, 300, 3)


0
投票

tf.placeholder的尺寸为None。在运行时,您可以传递具有任意大小值仅在该维度上的张量。例如,

states = tf.placeholder('float32', [None, 5])

意味着您可以将以下任意矩阵传递给states

  • 具有尺寸[5,5],的张量
  • 具有尺寸[123,5],的张量
  • 尺寸为[1234,5]的张量

但是如果任何固定尺寸与占位符的大小不匹配,则会出现错误。

  • 具有尺寸[15,10]的张量将引发错误。
© www.soinside.com 2019 - 2024. All rights reserved.