【问题标题】:Keras LSTM: TypeError: unhashable type: 'numpy.ndarray'Keras LSTM:TypeError:不可散列的类型:'numpy.ndarray'
【发布时间】:2017-06-11 11:05:48
【问题描述】:

运行 Keras LSTM 模型时,出现上述错误。以下是模型的要点:

inp = Input(shape=(170,200))
out = LSTM(25, activation='relu')(inp)
main_out = Dense(4, activation='sigmoid')(out)
model = Model(inputs = [inp], outputs = [main_out])
# optimizer, model.fit etc. etc.
model.fit([img_data, ], [y_train],
                   epochs=500, batch_size=1, callbacks = callbacks,
                   verbose=1, validation_split=0.1)

我的输入是 250 组 170 个向量的列表,每个向量长度为​​ 200。形状似乎正确:

X.shape = (170, 200, 250)

但是,当我运行模型时,我得到了

    Traceback (most recent call last):
  File "lstm_trials.py", line 62, in <module>
    model = Model(inputs = [inp], outputs = [main_out])
  File ".../keras/legacy/interfaces.py", line 88, in wrapper
    return func(*args, **kwargs)
  File ".../keras/engine/topology.py", line 1485, in __init__
    inputs_set = set(self.inputs)
TypeError: unhashable type: 'numpy.ndarray'

出了什么问题?

【问题讨论】:

标签: python keras


【解决方案1】:

我相信您的输入数据img_data 有错误的type() 或形状。我尝试使用在 Keras 2.0.4 上顺利运行的以下代码 sn-p 重现您的错误,但未成功。请将其输入数据格式与您的比较,以找出确切的错误来源。

import numpy as np

from keras import optimizers, losses
from keras.models import Model
from keras.layers import Input, Dense, LSTM
from keras.utils import to_categorical

# Generate dummy data
n_classes = 4
im_height = 170
im_width = 200
n_training_examples = 250
img_data = np.random.random(size=(n_training_examples, im_height, im_width))
y_train = to_categorical(
    y=np.random.randint(n_classes, size=(n_training_examples, 1)),
    num_classes=n_classes)

inp = Input(shape=(im_height, im_width))
out = LSTM(units=25, activation='relu')(inp)
main_out = Dense(units=n_classes, activation='softmax')(out)
model = Model(inputs=[inp], outputs=[main_out])
model.compile(optimizer=optimizers.sgd(),
              loss=losses.categorical_crossentropy)
model.fit(x=[img_data], y=[y_train],
          epochs=5, batch_size=10, verbose=1, validation_split=0.2)

【讨论】:

    猜你喜欢
    • 2019-03-22
    • 2012-02-19
    • 1970-01-01
    • 2020-01-24
    • 1970-01-01
    • 2018-04-24
    • 2018-08-03
    • 1970-01-01
    相关资源
    最近更新 更多