#python #numpy #tensorflow
#питон #тупица #тензорный поток
Вопрос:
Я пытаюсь обучить модель тензорного потока. Но я ошибся.
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 образцов, а их размеры 28×28, это набор данных 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 являются числами с плавающей точкой и имеют одинаковую форму.
Комментарии:
1. Каковы были «еще одни ошибки». В чем дело
trainImages.dtype
?2. @hpaulj Я проверил, что это объект, но его значения-число.
3. @hpaulj если я преобразую dtype в numpy.float 32, я получу эту ошибку :
setting an array element with a sequence.
4. Это говорит мне о том, что массив имеет
object
тип dtype, с элементами, которые различаются по форме. Он не может быть преобразован в многомерный числовой массив dtype. Что является корнем ошибки преобразования тензора.5. @hpaulj Я проверил формы элементов в self.trainImages, и все они имеют одинаковый размер (28,28)
Ответ №1:
Можно ли было бы распечатать какой-то тип вывода об ошибке?
Лично у меня была аналогичная проблема, и, покрыв свой ввод «np.stack ()», он добавил дополнительное измерение, изменил форму массива и позволил ему работать.
т.е.
images = np.stack(self.data.trainImages)
ИЗМЕНИТЬ: Удалена не относящаяся к делу информация
Комментарии:
1. Спасибо за ваш ответ, ваш первый ответ решил мою проблему. Но это странно, потому что я использовал тот же метод раньше, может быть, 4-6 месяцев, и он работал, и я не обновил свою версию tensorflow. Я получил еще одну ошибку, я открою новый пост для новой ошибки.
2. Извините, я неправильно прочитал ваш вызов fit (), вторая часть моего ответа была для 2 входов и 1 выхода.
3. Не проблема, я понял, что ты имеешь в виду, еще раз спасибо за все.