Я пытаюсь построить сверточную нейронную сеть в блоках данных, используя Spark 2.4.4 и серверную часть Scala 2.11 в python. Я собирал CNN раньше, но я впервые использую Spark (блоки данных) и AWS s3. Файлы в AWS сортируются следующим образом:
- train_test_small / (поезд или тест) / (0,1,2 или 3) /
А затем список изображений в каждой директории, соответствующей их категории (0,1,2,3)
Чтобы получить доступ к моим файлам, хранящимся в корзине s3, я установил корзину на блоки данных следующим образом:
# load in the image files
WS_BUCKET_NAME = "sensored_bucket_name/video_topic_modelling/data/train_test_small"
MOUNT_NAME = "train_test_small"
dbutils.fs.mount("s3a://%s" % AWS_BUCKET_NAME, "/mnt/%s" % MOUNT_NAME)
display(dbutils.fs.ls("/mnt/%s" % MOUNT_NAME))
При использовании: display(dbutils.fs.mounts())
я вижу, что корзина смонтирована на:
MountInfo(mountPoint='/mnt/train_test_small', source='sensored_bucket_name/video_topic_modelling/data/train_test_small', encryptionType='')
Затем я пытаюсь получить доступ к этому смонтированному каталогу через модуль потока ke_from_directory (), используя следующую команду кусок кода:
# create extra partition of the training data as a validation set
train_datagen=ImageDataGenerator(preprocessing_function=preprocess_input, validation_split=0) #included in our dependencies
# set scaling to most common shapes
train_generator=train_datagen.flow_from_directory('/mnt/train_test_small',
target_size=(320, 240),
color_mode='rgb',
batch_size=96,
class_mode='categorical',
subset='training')
#shuffle=True)
validation_generator=train_datagen.flow_from_directory('/mnt/train_test_small',
target_size=(320, 240),
color_mode='rgb',
batch_size=96,
class_mode='categorical',
subset='validation')
Однако, это дает мне следующую ошибку:
FileNotFoundError: [Errno 2] No such file or directory: '/mnt/train_test_small/train/'
Я пытался выяснить это, используя документацию по keras и databricks, но не получил дальше. Мое лучшее предположение на данный момент заключается в том, что keras flow_from_directory () не может обнаружить смонтированные каталоги, но я не уверен.
Кто-нибудь знает, как применить модуль .flow_from_directory () к смонтированному каталогу s3 в кирпичах данных, или кто знает хорошую альтернативу? Помощь будет высоко ценится!