我有以下格式的数据:150个字母的序列字母只能是 A、B、C、D、E。我总共有 20k 个序列10k 个序列标记为 1,其他 10k 个序列标记为 0我通过执行以下操作将这 150 个字母转换为 one-hot 向量:from skimage.transform import resizeimport numpy as npdef transform(data): #transform sequence into one hot encoding def one_hot_encode(seq): mapping = dict(zip("ABCDE", range(5))) seq2 = [mapping[i] for i in seq] return np.eye(5)[seq2] train = np.zeros((len(data), 150, 5, 1), dtype=np.uint8) for idx, d in enumerate(data): seq = one_hot_encode(d) seq = resize(seq, (150, 5, 1), mode='constant', preserve_range=True) train[idx] = seq.astype('float32') return train现在,我只想将这些数据传递到由 Keras 构建的简单 CNN 中。我将模型构建为:model = Sequential()model.add(Conv2D(64,kernel_size=(3,3),activation='relu',input_shape=(150,5,1)))model.add(Conv2D(32, kernel_size=3, activation='relu'))model.add(Flatten())model.add(Dense(1, activation='sigmoid'))model.summary()model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])现在,我正在尝试通过以下方式进行训练:history = model.fit(X_train, Y_train, epochs=100, verbose=False, validation_split=0.25, batch_size=10)但这不断抛出以下错误:InternalError:为 CUDA 设备序号 0 初始化 StreamExecutor 失败:内部:对 cuDevicePrimaryCtxRetain 的调用失败:CUDA_ERROR_OUT_OF_MEMORY:内存不足;报告的总内存:11721506816我已经训练了尺寸为 512x512x3 的图像,其输入尺寸远不止于此。那么为什么会导致这个错误呢?
添加回答
举报
0/150
提交
取消
