我正在使用Spark2.4.4和python中的Scala2.11后端在databricks中构建一个卷积神经网络。我已经建立了CNN之前,但这是我第一次使用星火(数据库)和AWS s3。AWS中的文件如下所示:
然后列出每个目录中对应于其类别(0、1、2、3)的图像列表。
为了访问存储在s3桶中的文件,我将桶挂载到databricks中,如下所示:
# 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='')
然后,我尝试使用以下代码通过keras的flow_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()模块应用于databricks中的s3挂载目录,或者谁知道一个好的替代方案?我会非常感谢你的帮助!
发布于 2020-04-06 12:47:48
我认为您可能丢失了flow_from_directory的另一个目录级别指示。来自Keras 文档
目录:string,指向目标目录的路径。它应该包含,每个类一个子目录。每个子目录目录树中的任何PNG、JPG、BMP、PPM或TIF图像都将包含在生成器中。
# set scaling to most common shapes
train_generator=train_datagen.flow_from_directory(
'/mnt/train_test_small/train', # <== add "train" folder
target_size=(320, 240),
...
validation_generator=train_datagen.flow_from_directory(
'/mnt/train_test_small/test', # <== add "test" folder
target_size=(320, 240),
....发布于 2020-04-06 12:58:41
找到答案了。若要访问文件夹的直接路径,请添加/dbfs/mnt/train_test_small/train/
https://stackoverflow.com/questions/61058721
复制相似问题