如何在 Fashion_mnist (Tensorflow) 中设置具有特定类别的子集

Posted

技术标签:

【中文标题】如何在 Fashion_mnist (Tensorflow) 中设置具有特定类别的子集【英文标题】:How to set a subset with specific category in Fashion_mnist (Tensorflow) 【发布时间】:2022-01-22 15:04:24 【问题描述】:

现在我已经在 Fashion_mnist 中使用了原始数据:

https://www.tensorflow.org/api_docs/python/tf/keras/datasets/fashion_mnist/load_data

fashion_mnist = tf.keras.datasets.fashion_mnist
(train_images,train_labels),(test_images,test_labels)=fashion_mnist.load_data()
class_names = ['T-shirt/top','Trousers','Pullover','Dress','Coat','Sandals','Shirt','Shirt','Sneakers','Bag','Ankle boot']

如何创建具有特定类别的子集,例如 6000 T 恤和 6000 连衣裙以及其他类别中的 1000?

【问题讨论】:

您想将图像保存在某处还是只是将数据加载到 10 个不同的变量中? 【参考方案1】:

以下代码 sn-p 应该可以帮助您开始使用它。 train_datatest_data包含每个类的数据(索引从0到9,相当于你的class_names)。

import tensorflow as tf

fashion_mnist = tf.keras.datasets.fashion_mnist
(train_images,train_labels),(test_images,test_labels)=fashion_mnist.load_data()
class_names = ['T-shirt/top','Trousers','Pullover','Dress','Coat','Sandals','Shirt','Shirt','Sneakers','Bag','Ankle boot']

train_data = []; test_data = []
for i in range(10):
    idxs = [idx for idx,item in enumerate(train_labels) if item==i]
    train_data.append(train_images[idxs])

    idxs = [idx for idx,item in enumerate(test_labels) if item==i]
    test_data.append(train_images[idxs])

【讨论】:

感谢您的回答,这个循环真的帮助我找到了我需要的东西!但也有一个问题,“train_images[idxs]”的值是一个 2darray,我怎样才能将它保存到一个新的空 3darray 中?我怎样才能创建它?我尝试了很多次,但即使使用“np.append(new_ndarray,train_images[idx])”也不能成功追加 @AxlHuang,请参阅What should I do when someone answers my question? 并考虑接受答案。对于新问题,您可以创建一个新帖子。确保提供正确的输入和输出描述。

以上是关于如何在 Fashion_mnist (Tensorflow) 中设置具有特定类别的子集的主要内容,如果未能解决你的问题,请参考以下文章

Tensorflow+Keraskeras实现条件生成对抗网络DCGAN--以Minis和fashion_mnist数据集为例

Tensorflow+Keraskeras实现条件生成对抗网络DCGAN--以Minis和fashion_mnist数据集为例

Tensorflow实现多层神经网络tf.keras进行fashion_mnist时装分类(完整版)

如何在tensorflow中判断tensor(张量)的值

如何在 C++ 中将 TF_Tensor 转换为 opencv Mat?

教程 | PyTorch内部机制解析:如何通过PyTorch实现Tensor