【问题标题】:How do I fix this Wide & Deep RNN?如何修复这个 Wide & Deep RNN?
【发布时间】:2020-08-24 03:55:49
【问题描述】:

阅读 Hands-On Machine Learning 一书,发现了 Wide and Deep 模型,这似乎是一个灵活、准确的 RNN 模型。但是,我不断收到以下错误:“AttributeError: 'tuple' object has no attribute 'ndim'”。我用谷歌搜索了这个错误,似乎没有明确的解决方案或解释为什么我会收到错误,至少对我作为初学者来说是这样。有人知道如何解决这个问题吗?

housing = fetch_california_housing()

X_train_full, X_test, y_train_full, y_test = train_test_split(housing.data, housing.target, 
random_state=42)
X_train, X_valid, y_train, y_valid = train_test_split(X_train_full, y_train_full, random_state=42)

scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_valid = scaler.transform(X_valid)
X_test = scaler.transform(X_test)

input_A = keras.layers.Input(shape=[5], name="wide_input")
input_B = keras.layers.Input(shape=[6], name="deep_input")
hidden1 = keras.layers.Dense(30, activation="relu")(input_B)
hidden2 = keras.layers.Dense(30, activation="relu")(hidden1)
concat = keras.layers.concatenate([input_A, hidden2])
output = keras.layers.Dense(1, name="output")(concat)
model = keras.models.Model(inputs=[input_A, input_B], outputs=[output])

model.compile(loss='mse', optimizer=keras.optimizers.SGD(lr=1e-3))

X_train_A, X_train_B = X_train[:, :5], X_train[:, 2:]
X_valid_A, X_valid_B = X_valid[:, :5], X_valid[:, 2:]
X_test_A, X_test_B = X_test[:, :5], X_test[:, 2:]
X_new_A, X_new_B = X_test_A[:3], X_test_B[:3]

history = model.fit((X_train_A, X_train_B), y_train, epochs=20,
                validation_data=((X_valid_A, X_valid_B), y_valid))
mse_test = model.evaluate((X_test_A, X_test_B), y_test)
y_pred = model.predict((X_new_A, X_new_B))

【问题讨论】:

    标签: python neural-network tensorflow2.0


    【解决方案1】:

    将 shape=[5] 更改为 shape=(5) 和 shape=[6] 一样

    【讨论】:

      猜你喜欢
      • 2016-11-26
      • 1970-01-01
      • 2018-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多