如何在 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_data
和test_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时装分类(完整版)