函数tf.squeze和tf.nn.rnn做什么?
我搜索了这些API,但找不到参数、示例等。
另外,以下代码使用tf.squeeze
形成的p_inputs
的形状是什么,使用tf.nn.rnn
的含义和情况是什么?
batch_num = 10
step_num = 2000
elem_num = 26
p_input = tf.placeholder(tf.float32, [batch_num, step_num, elem_num])
p_inputs = [tf.squeeze(t, [1]) for t in tf.split(1, step_num, p_input)]
像这样的问题最好的答案是TensorFlow API documentation。您提到的两个函数在数据流图中创建操作和符号张量。特别是:
^{} 函数返回一个张量,其值与其第一个参数相同,但形状不同。它删除大小为1的维度。例如,如果
t
是形状为[batch_num, 1, elem_num]
的张量(如您所问),则tf.squeeze(t, [1])
将返回内容相同但大小为[batch_num, elem_num]
的张量。^{} 函数返回一对结果,其中第一个元素表示某个给定输入的递归神经网络的输出,第二个元素表示该输入的该网络的最终状态。TensorFlow网站有一个tutorial on recurrent neural networks包含更多细节。
挤压移除大小为“1”的变形。下面的示例将显示挤压的用法。
相关问题 更多 >
编程相关推荐