我正在按照这个教程进行学习:如何从本地驱动器加载训练和测试数据用于深度学习Keras模型?,但遇到了这样的问题 name 'train_data' is not defined
。我知道我还没有定义train_data,但我不知道在train_data = …中应该写什么。
我的代码看起来像这样
train_path = '/Users/nayageovani/Documents/Artificial Intelligence/dataset/train'train_batch = os.listdir(train_path)x_train = []# 如果数据是以图像形式存在for sample in train_data: img_path = train_path+sample x = image.load_img(img_path) # 如果需要进行预处理 x_train.append(x)test_path = PATH+'/data/test/'test_batch = os.listdir(test_path)x_test = []
我的数据集文件夹结构如下
|--dataset |--test |--fresh |--rotten |--train |--fresh |--rotten
回答:
train_data
(和test_data
)应该分别是包含训练或测试数据文件名的可迭代对象。
例如,你可以创建一个包含训练数据目录中文件的列表,如下所示:
import os...imgTypes = ['jpg', 'png', 'gif', 'bmp']train_data = [item for item in os.listdir(train_path) if \ (os.path.isfile(os.path.join(train_path, item)) and os.path.splitext(item)[1].lower() in imgTypes)]
更新:
加载图像数据的一个更好的替代方法是使用keras的ImageDataGenerator
类。它可以直接在加载数据时进行预处理等操作。