使用 MNIST 数据集进行迁移学习的代码中的“文件名”是啥?
Posted
技术标签:
【中文标题】使用 MNIST 数据集进行迁移学习的代码中的“文件名”是啥?【英文标题】:What is 'filename' in the code of Transfer Learning using MNIST dataset?使用 MNIST 数据集进行迁移学习的代码中的“文件名”是什么? 【发布时间】:2019-01-29 12:48:51 【问题描述】:使用迁移学习对MNIST数据集进行分类的代码在链接https://www.analyticsvidhya.com/blog/2017/06/transfer-learning-the-art-of-fine-tuning-a-pre-trained-model/中给出
我无法理解代码中的“文件名”代表什么?还有,为什么数据集在代码中加载了两次。
我已经看到使用 load_img() 函数的代码,但我仍然无法运行给定的代码而不会出现错误,因为“文件名”是未知的,因为它没有在链接中定义。
MNIST 数据集包含两个文件“mnist_train.csv”和“mnist_test.csv”。有代码将 .csv 文件转换为图像,但是每个图像都有一个 .csv 文件。在这里,训练和测试中存在的所有图像只有两个 .csv 文件。
提前致谢!
【问题讨论】:
【参考方案1】:数据集采用 csv 格式,并有 filename
列,其中包含图像名称。
我想该文件具有以下结构:
filename label
0 file1.jpg 1
1 file2.jpg 8
2 file3.jpg 5
....
他们将 csv 文件读入train
train=pd.read_csv("R/Data/Train/train.csv")
然后使用循环打开数据框中给定的每个文件
for i in range(len(train)):
temp_img=image.load_img(train_path+train['filename'][i],target_size=(224,224))
使用上面的代码加载图像并调整大小
train_data = pd.read_csv('train.csv')
labels = []
pixels =[]
for index, row in train_data.iterrows():
label=np.zeros(10)
label[row["label"]]=1
labels.append(label)
pixels.append(row[1:])
labels = np.array(labels)
pixels = np.array(pixels)
我已经添加了从您在 cmets 中发布的 csv 文件加载数据的代码
【讨论】:
.csv 格式的 MNIST 数据集在此链接中给出 pjreddie.com/projects/mnist-in-csv 如果您可以检查它会很棒,因为没有名为 filename 的列并且文件从第一列中的标签开始。运行代码后,生成的错误是“KeyError:'filename'”。可能我必须在其中创建该列。是吗? 您使用的 MNIST csv 文件与您在问题中发布的网站不同。 MNIST csv 格式为label,pixel-1 to pixel-784
。所以你必须以不同的方式加载你的数据。我在答案中添加了如何从这样的 csv 文件加载数据以上是关于使用 MNIST 数据集进行迁移学习的代码中的“文件名”是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Tensorflow学习教程------利用卷积神经网络对mnist数据集进行分类_训练模型