使用 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 数据集进行迁移学习的代码中的“文件名”是啥?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习算法专题(蓄力计划)二十实操代码MNIST 数据集

Tensorflow学习教程------利用卷积神经网络对mnist数据集进行分类_训练模型

MNIST数据集的导入与预处理

深度学习原理与框架-Tensorflow卷积神经网络-神经网络mnist分类

多层感知器对 mnist 数据集进行分类

深度学习常用数据集 API