[英]Access in-memory data from multiple Jupiter notebooks
我有多個GPU,可以並行訓練不同的神經網絡,但是不幸的是,由於數據量大,受CPU內存的限制,並且不能在不同的筆記本上運行多個模型,因為我必須加載數據每個筆記本。
是否可以從一個筆記本加載數據並通過另一個筆記本訪問數據?
我正在使用TensorFlow / Keras
與其嘗試將所有內容加載到內存中,不如使用生成器函數。 這會將數據分批讀取到內存中,然后將這些批數據通過神經網絡推送。 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”下設置),但是您也可以進行“分類”,“稀疏”,“輸入”等。如果您還需要其他內容,則還可以創建自己的生成器或改編凱拉斯之一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.