顺序模型

时间:2018-01-03 18:33:03

标签: python-3.x tensorflow deep-learning keras conv-neural-network

我想了解Upsampling2D图层在keras中的工作原理,因此我制作了单层Sequential模型。

trial = Sequential() trial.add(UpSampling2D(size=(2, 2) , input_shape = (100,100,1)))

输入是一个随机数组: x = random.normal(0 , 1 , size = (100,100,1))

解释程序报告以下错误: ValueError: Error when checking : expected up_sampling2d_7_input to have 4 dimensions, but got array with shape (100, 100, 1)

我只是尝试使用上采样层对图像进行上采样。我该如何修复错误?或者还有其他方法可以实现同样的目标吗?

kerasTensorFlow后端

一起使用

1 个答案:

答案 0 :(得分:2)

Keras按批处理数据。默认情况下,第一个维度是批量大小。在这种情况下,批处理是您要上采样的图像数。如果您只想对单个图像进行上采样,请按以下方式定义输入:

x = random.normal(0 , 1 , size = (1, 100,100,1))

它应该有用。

这是一个有效的例子:

from keras.models import Sequential
from keras.layers import UpSampling2D
import numpy as np
from matplotlib import pyplot

trial = Sequential()
trial.add(UpSampling2D(size=(2,2), input_shape=(100,100,1))

x = np.random.normal(0, 1, size=(1,100,100,1))
x_up = trial.predict(x)

fig, ax = pyplot.subplots(1, 2)
ax[0].imshow(x[0 , : , : , 0])
ax[1].imshow(x_up[0 , : , : , 0])
pyplot.show()