Преобразуйте тензор формы (?, 32,24,24) в массив 3d numpy

У меня есть тензор с пакетом из 32 изображений в градациях серого, каждое размером 24x24.

Тензор создается после слоя Conv2D в CNN, построенной с использованием Keras с бэкэндом тензорного потока. Данные предоставляются модели в виде массива numpy.

Теперь я хочу преобразовать выходной тензор в массив numpy и снова обратно в тензор.

Я сослался на эта страница и написал этот простой фрагмент кода, который, похоже, не работает

sess = tf.InteractiveSession()
ip = np.array(x.eval())

здесь x - мой тензор, а ip - предполагаемый массив numpy. Это вызывает InvalidArgumentError (). Есть ли способ избавиться от неизвестного (?) Измерения?

Вот трассировка стека:

 Message=InvalidArgumentError()
  Source=c:\users\rangan\source\repos\fuzzycnn\fuzzycnn\fuzzyconv2d.py
  StackTrace:
  File "c:\users\rangan\source\repos\fuzzycnn\fuzzycnn\fuzzyconv2d.py", line 31, in call
    ip = np.array(x.eval())
  File "c:\program files (x86)\microsoft visual studio\shared\python36_64\lib\site-packages\keras\engine\base_layer.py", line 507, in __call__
    inputs=to_list(inputs))
  File "c:\program files (x86)\microsoft visual studio\shared\python36_64\lib\site-packages\keras\engine\sequential.py", line 185, in add
    output_tensor = layer(self.outputs[0])
  File "c:\users\rangan\source\repos\fuzzycnn\fuzzycnn\fuzzycnn.py", line 39, in baseline_model
    model.add(F_Conv2D(5))
  File "c:\users\rangan\source\repos\fuzzycnn\fuzzycnn\fuzzycnn.py", line 49, in <module>
    model = baseline_model()

Пожалуйста, укажите минимальный воспроизводимый пример, включая код, который может запустить мы, который демонстрирует проблему, текущий результат и ожидаемый результат.

Daniel F 10.09.2018 10:06

Кроме того, в случае ошибки скопируйте / вставьте трассировку ошибки весь, а не только тип ошибки.

Daniel F 10.09.2018 10:07
1
2
186
1

Ответы 1

Значение выходного тензора по определению вычисляется для определенного входного пакета. Вам нужно передать значение для ввода функции eval:

ip = x.eval(session=sess, feed_dict={input: X_batch})

Пока x является тензором, представляющим интерес, и «вводит» заполнитель ввода, это самый простой способ получить значение тензора.

Другие вопросы по теме