在这个MNIST训练和测试数据中,我可以找到特定数值数据的数量吗?

import torchvision.datasets as dsetsimport torchvision.transforms as transformsimport torch.nn.initimport torch.nn.functional as Fdevice = "cuda" if torch.cuda.is_available() else "cpu"print(device)learning_rate = 0.001training_epochs = 15batch_size = 100mnist_train = dsets.MNIST(root='MNIST_data/', # 指定下载路径                          train=True, # 指定为True以下载训练数据                          transform=transforms.ToTensor(), # 转换为张量                          download=True)mnist_test = dsets.MNIST(root='MNIST_data/', # 指定下载路径                         train=False, # 指定为False以下载测试数据                         transform=transforms.ToTensor(), # 转换为张量                         download=True)

这是使用CNN加载MNIST数据分类代码的数据部分

我在参考的书中提到,只需提到那部分就可以查看训练集和测试集中有多少特定数值数据。

例如,你能告诉我训练集或测试集中有多少个’5’的数据吗?

我知道可以通过mnist_train.train_data或mnist_train.train_labels等访问数据张量,但我不知道如何知道特定数值数据的数量。请帮助我


回答:

你可以分别使用datatargets属性来访问数据集的任何分割的数据和标签。例如,这里你可以使用mnist_train.datamnist_train.labels分别访问训练数据和标签。

由于这个数据集的targets属性是一个torch.Tensor,你可以通过使用torch.bincount来统计每个目标的实例数量。由于总共有10个类别,输出将是一个长度为10的张量,其中第i个索引指定了类别i的数据点的数量。

示例:

>>> mnist_train = dsets.MNIST(root='MNIST_data/', train=True, transforms.ToTensor(), download=True)>>> mnist_train.targetstensor([5, 0, 4,  ..., 5, 6, 8])>>> torch.bincount(mnist_train.targets, minlength=10)tensor([5923, 6742, 5958, 6131, 5842, 5421, 5918, 6265, 5851, 5949])

你可以看到类别5在训练分割中拥有5,421个数据点。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注