我有多个GPU,可以并行训练不同的神经网络,但不幸的是,由于我受到CPU内存的限制数据,并且无法在不同的笔记本电脑,因为我必须加载每个笔记本的数据。
是否有一种方法可以从一个笔记本中加载数据并通过另一本笔记本访问?
我正在使用TensorFlow/keras
,而不是尝试将所有内容加载到内存中,而是使用Generator函数。这将批量读取数据,然后通过神经网络推动这些批次。KERAS具有内置的生成器功能,目的是为了在磁盘中读取图像数据的批处理。
请参考https://keras.io/preprocessing/image/
这是一个小示例脚本:
from keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True)
test_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(
'data/train',
target_size=(150, 150),
batch_size=32,
class_mode='binary')
validation_generator = test_datagen.flow_from_directory(
'data/validation',
target_size=(150, 150),
batch_size=32,
class_mode='binary')
model.fit_generator(
train_generator,
steps_per_epoch=2000,
epochs=50,
validation_data=validation_generator,
validation_steps=800)
以上假设您正在进行二进制分类(在" class_mode"下设置(,但您也可以执行"分类","稀疏","输入"等。如果您需要其他内容,也可以创建自己的生成器,或适应keras One。