【发布时间】:2022-01-10 03:21:18
【问题描述】:
我尝试训练一个张量流模型。但我得到了错误。
Failed to convert a NumPy array to a Tensor (Unsupported object type numpy.ndarray).
这是我的合身代码:
model.fit(self.datas.trainImages, self.datas.trainLabels,self.datas.batch_size, epochs =self.datas.epochs)
我的 self.datas.trainImages 是 numpy.array() 它的形状是 (16,) 它有 16 个样本,它们的大小是 28x28,它是 mnist 数据集。
self.train_dataset = [[cv2.imread(image0),0],[cv2.imread(image1),1],[cv2.imread(image2),2],[...],[...]]
self.trainDataset = numpy.array(self.train_dataset)
self.trainImages, self.trainLabels = numpy.asarray(self.trainDataset[:,0])/255,self.trainDataset[:,1] #.astype(numpy.float32)/
self.val_dataset = [[cv2.imread(image0),0],[cv2.imread(image1),1],[cv2.imread(image2),2],[...],[...]]
self.valDataset = numpy.array(self.val_dataset)#.astype(numpy.float32)
self.valImages, self.valLabels = numpy.asarray(self.valDataset[:,0])/255,self.valDataset[:,1] #.astype(numpy.float32)/255
我尝试使用 astype 或 numpy.ndarray 但又遇到了另一个错误。我确信 self.datas.trainImages 中的所有数据都是浮点数并且具有相同的形状。
【问题讨论】:
-
“另一个错误”是什么。
trainImages.dtype是什么? -
@hpaulj 我检查它是对象,但它的值是数字。
-
@hpaulj 如果我将 dtype 转换为 numpy.float 32,我会收到此错误:
setting an array element with a sequence. -
这告诉我数组是
objectdtype,其中元素的形状各不相同。它不能转换为多维数字 dtype 数组。这是张量转换错误的根源。 -
@hpaulj 我检查了self.trainImages中的元素形状,它们都具有相同的大小(28,28)
标签: python numpy tensorflow