Tensorflow 2.2.0-rc4 AttributeError:模块'tensorflow.compat.v1'在Spyder中没有属性'contrib'?

Posted

技术标签:

【中文标题】Tensorflow 2.2.0-rc4 AttributeError:模块\'tensorflow.compat.v1\'在Spyder中没有属性\'contrib\'?【英文标题】:Tensorflow 2.2.0-rc4 AttributeError: module 'tensorflow.compat.v1' has no attribute 'contrib' in Spyder?Tensorflow 2.2.0-rc4 AttributeError:模块'tensorflow.compat.v1'在Spyder中没有属性'contrib'? 【发布时间】:2021-02-17 11:33:36 【问题描述】:

这是我在 Spyder 中的代码。

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior() 



# Building the seq2seq model
def seq2seq_model(inputs, targets, keep_prob, batch_size, sequence_length, answers_num_words, questions_num_words, encoder_embedding_size, decoder_embedding_size, rnn_size, num_layers, questionswords2int):
    encoder_embedded_input = tf.contrib.layers.embed_sequence(inputs,
                                                              answers_num_words + 1,
                                                              encoder_embedding_size,
                                                              initializer = tf.random_uniform_initializer(0, 1))
    encoder_state = encoder_rnn(encoder_embedded_input, rnn_size, num_layers, keep_prob, sequence_length)
    preprocessed_targets = preprocess_targets(targets, questionswords2int, batch_size)
    decoder_embeddings_matrix = tf.Variable(tf.random_uniform([questions_num_words + 1, decoder_embedding_size], 0, 1))
    decoder_embedded_input = tf.nn.embedding_lookup(decoder_embeddings_matrix, preprocessed_targets)
    training_predictions, test_predictions = decoder_rnn(decoder_embedded_input,
                                                         decoder_embeddings_matrix,
                                                         encoder_state,
                                                         questions_num_words,
                                                         sequence_length,
                                                         rnn_size,
                                                         num_layers,
                                                         questionswords2int,
                                                         keep_prob,
                                                         batch_size)
    return training_predictions, test_predictions

我使用的是 Ubuntu 18.04

    $ python3
 Python 3.8.3 (default, Jul  2 2020, 16:21:59)  [GCC 7.3.0] :: Anaconda, Inc. on linux Type "help", "copyright", "credits" or "license" for more information.
    >>> import tensorflow as tf
    >>> tf.__version__ '
    >>> 2.2.0-rc4'

我知道 tf.contrib 已从 TensorFlow 中删除

我在here 找到了一些解决方案,但无法解决问题

【问题讨论】:

【参考方案1】:

最后我明白了在 tensorflow 2contrib强>python 3.8。 在这里,我将我的 python 版本降级为 pythone 3.5tensorflow 1.0

这是我遵循的步骤

第一步:我已经用python 3.5版创建了一个新环境

conda create --name env1 pip python=3.5 parso=0.7

第二步:激活我的环境

conda activate env1

最后安装 tensorflow 1.0

pip install tensorflow==1.0

这对我有用。

【讨论】:

以上是关于Tensorflow 2.2.0-rc4 AttributeError:模块'tensorflow.compat.v1'在Spyder中没有属性'contrib'?的主要内容,如果未能解决你的问题,请参考以下文章

py_get_attr_impl(x,name,silent)中的R错误:AttributeError:模块'tensorflow'没有属性'placeholder'

在 TensorFlow 中导入巨大的非图像数据集

from keras.preprocessing.text import Tokenizer报错:AttributeError: module ‘tensorflow.compat.v2‘ has..

为属性名称分配值

attr_accessor 和 attr_accessible 的区别

JQ attr prop 区别