Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在tensorflow_数据集加载的数据集中分别加载图像和标签 将tensorflow_数据集导入为TFD 列车ds=tfds.load('cifar100',split='train[:90%]')。shuffle(1024)。批处理(32) val_ds=tfds.load('cifar100',split='train[-10%:]')。shuffle(1024)。批处理(32)_Python_Tensorflow_Machine Learning - Fatal编程技术网

Python 如何在tensorflow_数据集加载的数据集中分别加载图像和标签 将tensorflow_数据集导入为TFD 列车ds=tfds.load('cifar100',split='train[:90%]')。shuffle(1024)。批处理(32) val_ds=tfds.load('cifar100',split='train[-10%:]')。shuffle(1024)。批处理(32)

Python 如何在tensorflow_数据集加载的数据集中分别加载图像和标签 将tensorflow_数据集导入为TFD 列车ds=tfds.load('cifar100',split='train[:90%]')。shuffle(1024)。批处理(32) val_ds=tfds.load('cifar100',split='train[-10%:]')。shuffle(1024)。批处理(32),python,tensorflow,machine-learning,Python,Tensorflow,Machine Learning,我想把train\u ds和val\u ds转换成这样的东西:x\u train,y\u train和x\u val,y\u val(x代表图像,y代表标签)。 KerasAPI使用训练和测试数据分割(在sklearn中似乎也是如此),但我不想在这里使用任何测试数据 我尝试过这个方法,但没有成功(我确实理解为什么不成功,但我不知道如何将我的训练数据转换为图像和标签): x\u train=train\u ds['image'] #TypeError:“BatchDataset”对象不可下标 这不

我想把
train\u ds
val\u ds
转换成这样的东西:
x\u train,y\u train
x\u val,y\u val
(x代表图像,y代表标签)。 KerasAPI使用训练和测试数据分割(在sklearn中似乎也是如此),但我不想在这里使用任何测试数据

我尝试过这个方法,但没有成功(我确实理解为什么不成功,但我不知道如何将我的训练数据转换为图像和标签):

x\u train=train\u ds['image']
#TypeError:“BatchDataset”对象不可下标

这不是最好的方法,我先创建列表来检查它们。我想你想要的是:

train_ds = tfds.load('mnist', split='train[:90%]')

train_examples_labels = tfds.as_numpy(train_ds)

x_train = []
y_train = []


for features_labels in train_examples_labels:
    x_train.append(features_labels['image'])
    y_train.append(features_labels['label'])
功能\u标签
是一本字典:

features_labels.keys()
dict_keys(['image', 'label'])
之后,可以将它们转换为
numpy
数组

x_train = np.array(x_train, dtype = 'float32')
y_train = np.array(y_train, dtype = 'float32')

我找到了一个更好的解决方案:

train\u ds,val\u ds=tfds.load(name=“cifar100”,拆分=('train[:90%],'train[-10%:]',批次大小=-1,as\u supervised=True)
x\u列,y\u列=tfds.as\u numpy(列数据)
x_val,y_val=tfds.as_numpy(val\u数据)

回答您的问题?我尝试了所有建议的解决方案,但我一直遇到这样的错误
ValueError:太多的值无法解包(预期为2)
我认为该问题中的问题与我这里的问题不同。我使用了您的方法,但与Keras API加载的列车数据相比:
(x_train_keras,y_train_keras),(x_test_keras,y_test_keras)=cifar100.加载数据()y_train_keras==y_train数组([[False,False,False,False,False,False,False],[False,False,False,False],[False,False,False,False,False],[假,假,假,…,假,假,假],[假,假,假,…,假,假,假]]
它们的顺序可能不一样。我检查了形状,它们是一样的。这也是我的想法,但我没有洗牌我的数据,所以我想知道为什么顺序不同。另外,由于某种原因,我无法将最终数组转换为float32。我发现这是由于导入期间批量处理数据造成的。谢谢帮助!