我正在尝试创建一个神经网络来添加和减去整数。代码如下:
model_add = Sequential(
[
Dense(10, activation='relu'),
Dense(1, activation ='relu')
]
)
model_subtract = Sequential(
[
Dense(10, activation='relu'),
Dense(1, activation ='relu')
]
)
model_add.compile(loss = 'mse', optimizer='adam')
batch_size = 32
epochs = 100
model_add.fit(X_train, y_train, batch_size=batch_size, epochs=epochs, verbose = 0)
model_subtract.compile(loss = 'mse', optimizer='adam')
batch_size = 32
epochs = 100
model_add.fit(X_train, y_train, batch_size=batch_size, epochs=epochs, verbose = 0)
print("enter first num:")
x = input()
print("Enter operation:")
op= input()
print("enter second num:")
y = input()
X = int(x)
Y = int(y)
if op == "+":
predicted_sum = model_add.predict([X, Y])
print(predicted_sum)
elif op =="-":
predicted_sum = model_subtract.predict([X, Y])
print(predicted_sum)
在输入 1+2 时,这会产生错误:
raise ValueError(f"Unrecognized data type: x={x} (of type {type(x)})")
ValueError: Unrecognized data type: x=[1, 2] (of type <class 'list'>)
有人可以解释为什么会发生这种情况以及如何解决它吗?
看起来您正在函数中传递一个列表作为参数,如果您希望传递 2 个参数,则会导致错误。
def model_add(x):
return x[0] + x[1]
def model_subtract(x):
return x[0] - x[1]
print("enter first num:")
x = input()
print("Enter operation:")
op= input()
print("enter second num:")
y = input()
X = int(x)
Y = int(y)
if op == "+":
predicted_sum = model_add([X, Y])
print(predicted_sum)
elif op =="-":
predicted_sum = model_subtract([X, Y])
print(predicted_sum)