kap*_*ike 3 neural-network keras
我正在尝试对灰色图像进行训练。的batch_size = 32, image size = (48*48)。我定义了我的网络input_shape = (48,48,1)。训练网络时出现如下错误。
错误 :
ValueError:检查输入时出错:预期 conv2d_17_input 有 4 个维度,但得到了形状为 (32, 48, 48) 的数组
model.add(Conv2D(32, kernel_size=(5, 5),
activation='relu',
input_shape=(48,48,1)
)
)
Run Code Online (Sandbox Code Playgroud)
假设您有1000训练图像,其中每个图像都是48x48灰度图像。将图像加载到 numpy 数组中后,您将得到形状 : (1000, 48, 48)。
这实质上意味着您1000的数组中有元素,并且每个元素都是一个48x48矩阵。
现在,为了养活这些数据来训练CNN,你必须重塑这个名单(1000, 48, 48, 1),其中1表示道维度。由于您拥有灰度图像,因此您必须使用1. 如果是 RGB,它将是3.
考虑下面给出的玩具示例,
x_train = np.random.rand(1000, 48, 48) #images
y_train = np.array([np.random.randint(0, 2) for x in range(1000)]) # labels
# simple model
model = Sequential()
model.add(Conv2D(32, kernel_size=(5, 5),
activation='relu',
input_shape=(48,48,1)
)
)
model.add(Flatten())
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam')
# fitting model
model.fit(x_train, y_train, epochs=10, batch_size=32)
Run Code Online (Sandbox Code Playgroud)
这会抛出错误,
检查输入时出错:预期 conv2d_3_input 有 4 个维度,但得到了形状为 (1000, 48, 48) 的数组
为了修复它重塑x_train像这样,
x_train = x_train.reshape(x_train.shape[0], x_train.shape[1], x_train.shape[2], 1)
现在拟合模型,
model.fit(x_train, y_train, epochs=10, batch_size=32)
Epoch 1/10
1000/1000 [==============================] - 1s 1ms/step - loss: 0.7177
Epoch 2/10
1000/1000 [==============================] - 1s 882us/step - loss: 0.6762
Epoch 3/10
1000/1000 [==============================] - 1s 870us/step - loss: 0.5882
Epoch 4/10
1000/1000 [==============================] - 1s 888us/step - loss: 0.4588
Epoch 5/10
1000/1000 [==============================] - 1s 906us/step - loss: 0.3272
Epoch 6/10
1000/1000 [==============================] - 1s 910us/step - loss: 0.2228
Epoch 7/10
1000/1000 [==============================] - 1s 895us/step - loss: 0.1607
Epoch 8/10
1000/1000 [==============================] - 1s 879us/step - loss: 0.1172
Epoch 9/10
1000/1000 [==============================] - 1s 886us/step - loss: 0.0935
Epoch 10/10
1000/1000 [==============================] - 1s 888us/step - loss: 0.0638
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2849 次 |
| 最近记录: |