我正在尝试从这个改进算法
tutorial
. 更具体地说是CNN模型的层次。
def cnn_model():
model = Sequential()
model.add(Conv2D(32, (3, 3), padding='same',
input_shape=(3, IMG_SIZE, IMG_SIZE),
activation='relu'))
model.add(Conv2D(32, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.2))
model.add(Conv2D(64, (3, 3), padding='same',
activation='relu'))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.2))
########### The problem occurs when this is removed ############
model.add(Conv2D(128, (3, 3), padding='same',
activation='relu'))
model.add(Conv2D(128, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.2))
################################################################
model.add(Flatten())
model.add(Dense(512, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(NUM_CLASSES, activation='softmax'))
return model
分配形状为[]且类型为float的张量时的OOM
所以我的问题是:
编辑:
Iam在gpu上运行此命令,IMG U大小为32,批处理大小为32。除非我在模型中添加或删除层,否则运行正常。可以找到堆栈跟踪
here
. 我知道它的内存分配错误,这似乎与输入的形状有关。