首页 > 解决方案 > AttributeError:“ListWrapper”对象没有“最小化”属性

问题描述

我正在使用这个 seq2seq 模型构建一个聊天机器人,但是在我训练我的模型之前似乎存在问题,因为我遇到了这个错误。有谁知道如何解决它?

from tensorflow.keras.models import Model

from tensorflow.keras.layers import Dense, Embedding, LSTM, Input
enc_input = Input(shape=(80,)) 

dec_input = Input(shape=(80,))

VOCAB_SIZE = len(vocab)

embed = Embedding(VOCAB_SIZE+1, output_dim=50,input_length = 80,trainable = True)

enc_embed = embed(enc_input)
enc_lstm = LSTM(473,return_sequences=True,return_state=True)
enc_op, h, c = enc_lstm(enc_embed)
enc_states = [h,c]


dec_embed = embed(dec_input)
dec_lstm = LSTM(473,return_sequences=True,return_state=True)
dec_op,_,_ = dec_lstm(dec_embed,initial_state=enc_states)

dense = Dense(VOCAB_SIZE+1, activation='softmax')
dense_op = dense(dec_op) 

model = Model([enc_input,dec_input],dense_op)
model.compile(loss = 'categorical_crossentropy',metrics=['acc'],optimizer=['adam'])
model.summary()


model.fit([encoder_input,decoder_input],decoder_final_output, epochs=40)

错误:

AttributeError: in user code:

    /usr/local/lib/python3.7/dist-packages/keras/engine/training.py:853 train_function  *
        return step_function(self, iterator)
    /usr/local/lib/python3.7/dist-packages/keras/engine/training.py:842 step_function  **
        outputs = model.distribute_strategy.run(run_step, args=(data,))
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/distribute_lib.py:1286 run
        return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/distribute_lib.py:2849 call_for_each_replica
        return self._call_for_each_replica(fn, args, kwargs)
    /usr/local/lib/python3.7/dist-packages/tensorflow/python/distribute/distribute_lib.py:3632 _call_for_each_replica
        return fn(*args, **kwargs)
    /usr/local/lib/python3.7/dist-packages/keras/engine/training.py:835 run_step  **
        outputs = model.train_step(data)
    /usr/local/lib/python3.7/dist-packages/keras/engine/training.py:791 train_step
        self.optimizer.minimize(loss, self.trainable_variables, tape=tape)

    AttributeError: 'ListWrapper' object has no attribute 'minimize'

此行发生错误:

model.fit([encoder_input,decoder_input],decoder_final_output, epochs=40) 

标签: machine-learningdeep-learningnlpartificial-intelligencechatbot

解决方案


推荐阅读