【发布时间】:2018-09-06 06:52:34
【问题描述】:
我正在关注这个link 在小型数据集上训练 rnn 分类器,以检查代码是否正常工作。
在运行命令时
rnn.predict(data_test, 'answer.csv'),抛出异常:
AttributeError: 'tuple' object has no attribute 'ndim'
这是预测函数
def predict(self, data_test, answer_filename):
word_matrix, char_matrix, additional_features_matrix = data_test
print("Test example: ")
print(word_matrix[0])
print(char_matrix[0])
print(additional_features_matrix[0])
preds = self.model.predict([word_matrix, char_matrix, additional_features_matrix],
batch_size=self.batch_size, verbose=1)
index_to_author = { 0: "EAP", 1: "HPL", 2: "MWS" }
submission = pd.DataFrame({"id": test["id"], index_to_author[0]: preds[:, 0],
index_to_author[1]: preds[:, 1], index_to_author[2]: preds[:, 2]})
submission.to_csv(answer_filename, index=False)
word_matrix、char_matrix、additional_features_matrix 的长度可变。就我而言,尺寸分别为 (80,)、(80, 30) 和 (1153, 15)。我用谷歌搜索,发现我应该在输入的 numpy 数组中添加填充。
但是,链接中的代码运行良好。我无法理解我做错了什么。有人可以帮我解决这个问题吗?
【问题讨论】:
-
你能分享一下你输入的细节
data_test吗?也许你称之为 predict 的相关 coe。 -
rnn = SpookyRNN() rnn.load(MODEL_FILENAME) rnn.predict(data_test, 'answer.csv') 它在最后一条语句中抛出错误。
-
请编辑问题并在此处添加代码。此外,您仍然没有包括
data_test的来源。此外,简单地构建网络的三行代码是一个相当大的工作范围,因此可能会添加更多行来显示您如何编译模型,您使用什么优化器,您在哪里调用 fit,......(假设您是使用 Keras)
标签: machine-learning keras deep-learning lstm rnn