我正在建立一个模型来预测160000列的1148行到1-9的数目。我之前在keras中做过类似的事情,但是在将代码传输到tensorflow.keras时遇到了麻烦。运行该程序会产生以下错误:
(1)资源耗竭:分配带有形状(1148,1,15998,9)的张量并键入float ...... k:0 / device:GPU:0时,分配器GPU_0_bfc ..... ...... [[{{node conv1d / conv1d-0-0-TransposeNCHWToNWC-LayoutOptimizer}}]]
这是由以下代码引起的。这似乎是内存问题,但是我不确定为什么内存会成为问题。建议将不胜感激。
num_classes=9
y_train = to_categorical(y_train,num_classes)
x_train = x_train.reshape((1148, 160000, 1))
y_train = y_train.reshape((1148, 9))
input_1 = tf.keras.layers.Input(shape=(160000,1))
conv1 = tf.keras.layers.Conv1D(num_classes, kernel_size=3, activation='relu')(input_1)
flatten_1 = tf.keras.layers.Flatten()(conv1)
output_1 = tf.keras.layers.Dense(num_classes, activation='softmax')(flatten_1)
model = tf.keras.models.Model(input_1, output_1)
my_optimizer = tf.keras.optimizers.RMSprop()
my_optimizer.lr = 0.02
model.compile(optimizer=my_optimizer, loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=50, steps_per_epoch=20)
predictions = model.predict(x_test)
编辑:model.summary
Layer-Output shape-Param#
Input_1(inputLayer)无160000,1。 0 Conv1d(Conv1D)无,159998,9 36展平(Flatten)无,1439982。 0密集(密集)无,9。12959847
总参数:12,959,883可训练的参数12,959,883
答案 0 :(得分:0)
没有更多信息,很难给出具体答案。
您可以尝试一些操作:
batch_size=16
内添加model.fit
来减少批量大小(默认为32)(内存减少2倍)答案 1 :(得分:0)
这听起来可能很愚蠢,但是在我的情况下,我遇到了(1)资源耗尽错误,因为主硬盘驱动器中没有足够的空间。清理了一些空间后,我的训练脚本再次开始工作。