0

使用 tf.contrib.legacy_seq2seq.embedding_rnn_seq2seq with tensorflow 1.5 case 'TypeError: can't pickle _thread.lock objects',这个问题和https://github.com/suriyadeepan/practical_seq2seq/issues/31一样 我用的方式有人发帖:在 embedding_rnn_seq2seq 函数中更改 tf 的代码

encoder_cell = copy.deepcopy(cell) => encoder_cell = copy.copy(cell)

这是解决此问题的正确方法吗?或者有没有其他方法可以解决这个问题。tf的API搞得我乱七八糟,改得这么频繁,

tf.nn.rnn_cell, tf.contrib.seq2seq, tf.legacy_seq2seq

杀我!!

4

1 回答 1

0

将此添加到您的脚本中。我希望它现在可以工作

    setattr(tf.contrib.rnn.GRUCell, '__deepcopy__', lambda self, _: self)
    setattr(tf.contrib.rnn.BasicLSTMCell, '__deepcopy__', lambda self, _: self)
    setattr(tf.contrib.rnn.MultiRNNCell, '__deepcopy__', lambda self, _: self)
于 2019-02-25T18:31:46.997 回答