[Registro de armadilhas] Armadilhas encontradas ao atualizar o tensorflow 1.x para 2.x && uso básico do condad

Cenário do projeto:

ROS 20.04

Python3.7

TensorFlow2.8


Configuração Conda

Muitos problemas são encontrados ao usar código ancestral. Em última análise, é também um problema de versão.

1) Instale o conda

Agradecimentos a: Etapas oficiais de download e instalação do Conda e introdução detalhada ao uso do conda - Datapotumas - Blog Park

https://blog.csdn.net/qq_41101213/article/details/

Página inicial oficial da Conda:    https://github.com/conda/conda

Endereço oficial de download do Conda:   Download oficial do Conda    

 Eu sou um sistema Linux x86_64, então baixe  https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh

bash Miniconda3-latest-Linux-x86_64.sh

 O arquivo bin do conda será adicionado à variável de ambiente e precisa ser originado.

source ~/.bashrc

2) Crie um ambiente virtual Python

# 创建
conda create -n your_env_name python=3.7

3) Mudar de ambiente

# linux
source activate your_env_name

#若返回系统原本环境,退出conda(或返回上一级环境)
conda deactivate 

4) Instale pacotes adicionais no ambiente virtual

conda install -n your_env_name [package]

TensorFlow2.x segue as modificações anteriores ao código 1.x

grato:

Incompatibilidade entre Tensorflow2.0 e Tensorflow1.x_Blog-CSDN blog de Xiao Huiwa_O tensorflow2 é compatível com 1

Como a biblioteca contrib é instável, a biblioteca contrib foi excluída na versão mais avançada.

O TensorFlow 2.0 fornece o pacote de código tensorflow.compat.v1 para ser compatível com o código 1.x original e pode ser executado quase sem modificações.

Vai:

import tensorflow as tf

Substituir com:

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

Use ferramentas de migração para migrar automaticamente o código 1.x para 2.0

O TensorFlow 2.0 fornece uma ferramenta de migração de linha de comando para converter automaticamente o código 1.x em código 2.0. A ferramenta é usada da seguinte forma (assumindo que o nome do arquivo do nosso programa seja first-tf.py):

tf_upgrade_v2 --infile first-tf.py --outfile first-tf-v2.py

Ou a pasta inteira:

tf_upgrade_v2 --intree tf_pose --outtree tf_pose

Pergunta 1: Nenhum módulo chamado '_pafprocess'

Solução:

$ cd ~/tf_pose/pafprocess/
$ swig -python -c++ pafprocess.i 
$ python3 setup.py build_ext --inplace

问题2:ModuleNotFoundError: Nenhum módulo chamado 'tensorflow.contrib'

Parte da pergunta:

import tensorflow.contrib.slim as slim

Não há atributo contrib para versões acima do tensorflow2

Solução:

pip install --upgrade tf_slim --user

Modifique a parte da pergunta acima para:

import tf_slim as slim

问题3:AttributeError: módulo 'tensorflow' não possui atributo 'contrib'或者AttributeError: módulo 'tensorflow' não possui atributo 'layers'

Parte da pergunta:

_init_xavier = tf.contrib.layers.xavier_initializer()

Solução:

Modifique a parte da pergunta acima para:

_init_xavier = tf.truncated_normal_initializer(stddev=0.1)

问题4:AttributeError: módulo 'tensorflow_core.compat.v1' não possui atributo 'contrib'

Parte da pergunta:

_l2_regularizer_00004 = tf.contrib.layers.l2_regularizer(0.00004)
_l2_regularizer_convb = tf.contrib.layers.l2_regularizer(common.regularizer_conv)

O TensorFlow exclui interfaces duplicadas e basicamente reutiliza a interface Keras ao construir a rede, ou seja, tf.keras

Solução:

_l2_regularizer_00004 = tf.keras.regularizers.l2(0.00004)
_l2_regularizer_convb = tf.keras.regularizers.l2(common.regularizer_conv)

问题5:AttributeError: módulo 'tensorflow' não possui atributo 'slim'

Parte da pergunta:

slim = tf.slim

Solução:

import tf_slim as slim

Adicione o código acima e exclua a parte problemática


问题6;RuntimeError: módulo compilado na versão 0xe da API, mas esta versão do numpy

Solução:

pip3 install -U numpy

 Atualizar versão numpy

Acho que você gosta

Origin blog.csdn.net/weixin_44362628/article/details/124627633
Recomendado
Clasificación