在张量流或 keras 中使用 None 进行重塑

Inf*_*eer 1 reshape keras tensorflow

假设我有一个形状为 的张量[None, 80, 80]。这是一批用于随机梯度下降的 80x80 图像。

假设我选择小批量大小为 50(无为 50),并且我想将 None 分解为二维(5, 10),结果为[?, ?, 80, 80]

当形成具有 None 值的图形时,如何实现这一点?

Max*_*xim 5

你可以这样做tf.reshape

import numpy as np
import tensorflow as tf

x = tf.placeholder(tf.float32, shape=[None, 80, 80], name='x')
y = tf.reshape(x, shape=[-1, 10, 80, 80], name='y')
data = np.zeros([50, 80, 80])
with tf.Session() as session:
  result = session.run(y, feed_dict={x: data})
  print result.shape
Run Code Online (Sandbox Code Playgroud)

结果输出:

(5, 10, 80, 80)
Run Code Online (Sandbox Code Playgroud)

当然,请记住,传递不合适的批处理大小将导致运行时出现异常。