numpy 当将两个数值数组作为参数传递时,from_tensor_slices返回ValueError

smdnsysy  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(121)

我有两个NumPy数组:Images_ar(数据)和Category_y_ar(标签)。
两者都由dtype(‘uint8’)组成。
分类y_ar的形状为(978,126)。
图像的形状_ar为(978,224,224,3)
尝试使用以下命令构建数据集时:

dataset = tf.data.Dataset.from_tensor_slices(images_ar, categorical_y_ar)

我得到了以下回溯:
ValueError Traceback(最近一次调用)在[50]中输入,在<cell line:1>()中->>1 DataSet=tf.data.Dataset.from_tensor_slices(图像_ar,分类_y_ar)2 DataSet=Dataset.Repeat().Batch(Batch_Size)4 val_Size=int(num_Clages*0.2)
在DatasetV2.from_tensor_Slices(Tensor,名称)736@~.conda\envs\sklearn-env\lib\site-packages\tensorflow\python\data\ops\dataset_ops.py:814,方法737 def_tensor_slices(Tensor,名称=无):738“”创建其元素是给定Tensor切片的Dataset。739 740沿给定Tensor的第一维对给定Tensor进行切片。此操作(...)812数据集:a Dataset.813“”-->814返回Tensor切片数据集(Tensor,名称=名称)
TensorSliceDataset中的文件~.conda\envs\sklearn-env\lib\site-packages\tensorflow\python\data\ops\dataset_ops.py:4728,。init(SELF,ELEMENT,IS_FILES,NAME)4719为自身中的t。_TENSORS[1:]:4720
Batch_dim.Assert_is_Compatible_With(4721
Tensor_形状.尺寸(4722
Tensor_shape.dimension_value(t.get_shape()[0])))4724VARIANT_TESOR=Gen_DataSet_ops.tensor_Slice_DataSet(4725
自我Tensor,4726
Output_shapes=structure.get_flat_tensor_shapes(self._structure),
4727 IS_FILES=IS_FILES,->4728 METADATA=sel._metadata.SerializeToString()4729 Super(TensorSliceDataset,self).init(VARIANT_TENSOR)
DatasetV2中的文件~.conda\envs\sklearn-env\lib\site-packages\tensorflow\python\data\ops\dataset_ops.py:668,。_METADATA(SELF)666“用于生成数据集元数据的帮助器。”667METADATA=DATASET_METADATA_PB2.Metadata()-->668 IF SELF_NAME:669元数据。NAME=_VALIDATE_AND_ENCODE(SELF._NAME)670返回元数据
ValueError:具有多个元素的数组的真值不明确。使用a.any()或a.all()
请帮我弄清楚为什么会弹出这个错误。

h7appiyu

h7appiyu1#

尝试将数据作为集合或列表而不是单个实体传递给tf.data.Dataset.from_tensor_Slice(),如下所示

x_train = np.random.randn(978, 224, 224, 3)
y_train = np.random.randint(0,127, size=(978, 127))

dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train))

print(next(iter(dataset.take(1))))

产出:

<tf.Tensor: shape=(224, 224, 3), dtype=float64, numpy= ...

相关问题