我创建了如下模型(与theano后端的keras) . 当我在我的CPU上运行它时,它给了我内存错误 . 我有8GB DDR3内存,在调用model1.fit之前我的内存消耗为2.3 GB . 此外,我可以使用高达7.5GB的RAM,程序崩溃 . 我也试过在GPU(Nvedia GeForce GTX 860M)4GB上运行,但我仍然遇到内存错误 .
def get_model_convolutional():
model = keras.models.Sequential()
model.add(Conv2D(128, (3, 3), activation='relu', strides = (1,1), input_shape=(1028, 1028, 3)))
model.add(Conv2D(3, (3, 3), strides = (1,1), activation=None))
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy', optimizer=sgd)
return model
if __name__ == "__main__":
model1 = get_model_convolutional()
train_x = np.ones((108, 1208, 1208, 3), dtype=np.uint8)
train_y = np.ones((108, 1204, 1204, 3), dtype = np.uint8)
model1.fit(x_train, y_train, verbose = 2,epochs=20, batch_size=4)
我尝试打印model.summary()时的输出也是
Layer (type) Output Shape Param #
=================================================================
conv2d_1 (Conv2D) (None, 1026, 1026, 128) 3584
_________________________________________________________________
conv2d_2 (Conv2D) (None, 1024, 1024, 3) 3459
=================================================================
Total params: 7,043
Trainable params: 7,043
Non-trainable params: 0
_________________________________________________________________
为什么需要这么多的内存?我试图计算,但我认为应该需要大约1.5GB的内存 . 这是我的第一个模特 .