我是DL的新手,我要按一本书来建立我的第一个CNN。问题是(我也尝试过各种方法)我无法让文件打开一个文件夹,无法将一部分图像传输到一个较小的数据集中。下面是代码和错误,我得到当我试图运行我的程序。我试着用我能想到的任何方法改变反斜杠,但我似乎无法让程序签入catsvdogs文件夹的子文件夹。你知道吗
代码:
import os, shutil
# Path to the directory where the original DS was uncompressed
original_dir = 'datasets/catsvdogs'
# Directory to store my smaller dataset
base_dir = 'datasets/catsvdogs_small'
os.mkdir(base_dir)
# Directories for the training, validation, and test splits
train_dir = os.path.join(base_dir, 'train')
os.mkdir(train_dir)
validation_dir = os.path.join(base_dir, 'valid')
os.mkdir(validation_dir)
test_dir = os.path.join(base_dir, 'test')
os.mkdir(test_dir)
# Directory with training cat pictures
train_cats_dir = os.path.join(train_dir, 'cats')
os.mkdir(train_cats_dir)
# Directory with training dog pictures
train_dogs_dir = os.path.join(train_dir, 'dogs')
os.mkdir(train_dogs_dir)
# Directory with validation cat pictures
validation_cats_dir = os.path.join(validation_dir, 'cats')
os.mkdir(validation_cats_dir)
# Directory with validation dog pictures
validation_dogs_dir = os.path.join(validation_dir, 'dogs')
os.mkdir(validation_dogs_dir)
# Directory with test cat pictures
test_cats_dir = os.path.join(test_dir, 'cats')
os.mkdir(test_cats_dir)
# Directory with test dog pictures
test_dogs_dir = os.path.join(test_dir, 'dogs')
os.mkdir(test_dogs_dir)
# Copying the first 1000 cat images to train_cats_dir
fnames = ['cat.{}.jpg'.format(i) for i in range(1000)]
for fname in fnames:
src = os.path.join(original_dir + 'train', fname)
dst = os.path.join(train_cats_dir, fname)
shutil.copyfile(src, dst)
我得到的错误:
[Errno 2] No such file or directory: 'datasets/catsvdogstrain\\cat.0.jpg'
所以我认为有两个问题:
要解决此问题,请使用操作系统路径连接创建表示目录的所有字符串(见下文)
src = os.path.join(original_dir + 'train', fname)
中,直接连接两个字符串,而不是用斜杠连接它们。这就是为什么在错误消息中得到datasets/catsvdogstrain
,而不是预期的结果datasets/catsvdogs/train
。你知道吗要解决这个问题:加入原始目录并用操作系统路径连接(见下文)
下面是修复代码的方法:
相关问题 更多 >
编程相关推荐