ValueError: невозможно принять длину фигуры с неизвестным рангом в тензорном потоке.Python

Программы на Python
Anonymous
ValueError: невозможно принять длину фигуры с неизвестным рангом в тензорном потоке.

Сообщение Anonymous »

Я знаю, что этот вопрос уже задавался здесь раньше, но связанное обсуждение на GitHub слишком сложное, чтобы я мог за ним следить, поэтому я задаю новый вопрос. Я пишу нейронную сеть для умножения и деления чисел, используя простые модели тензорного потока для возведения в квадрат и сложения чисел, и эта ошибка появляется каждый раз, когда я запускаю код.

Код: Выделить всё

import tensorflow as tf
import numpy as np

model_sqr = tf.keras.models.load_model('sqr_3.keras')
model_add = tf.keras.models.load_model('model_add.keras')

x = "n"
while True:
print("enter first num:")
x = input()
if x == "end":
break

print("Enter operation:")
op= input()

print("enter second num:")
y = input()

X = int(x)
Y = int(y)
Ydiv = np.reciprocal(Y * 1.0)

if op == "*":
predicted_product = model_sqr.predict(model_add.predict(np.array([[X, Y]]))) - model_sqr.predict(np.array([X])) -  model_sqr.predict(np.array([Y]))
print(predicted_product/2)
elif op =="/":
print(model_sqr.predict(model_add.predict(np.array([[X, Ydiv]]))))
print(model_sqr.predict(np.array([X])))
#The offending line of code:
print(model_sqr.predict(np.array([Ydiv])))
predicted_quot = model_sqr.predict(model_add.predict(np.array([[X, Ydiv]]))) - model_sqr.predict(np.array([X])) -  model_sqr.predict(np.array([Ydiv]))
print(predicted_quot/2)

Ошибка:

Код: Выделить всё

 print(model_sqr.predict(np.array([Ydiv])))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Exception encountered when calling Sequential.call().

Cannot take the length of shape with unknown rank.

Ответчик предложил здесь исправление, но даже с измененным кодом при каждом запуске программы, если я изменю выполняемую операцию (поскольку это циклическая программа, скажем, я выполнил деление во-первых - это сработает. В следующем цикле, когда я выполняю умножение, возникает та же ошибка и наоборот), ошибка сохраняется.
Может кто-нибудь объяснить, что означает ошибка и как кардинально решить проблему?

Подробнее здесь: https://stackoverflow.com/questions/787 ... tensorflow

Вернуться в «Python»