TensorFlow 升级到2.0,那么项目的1.x进程怎么办?

目前,Tensorflow库正在经历着从推出以来最大规模的变化。TensorFLow 2.0 已经推出 beta 版本,同 TensorFlow 1.x 版本相比它带来了太多的改变。最大的问题在于不兼容了好多TensorFlow 1.x 版本的API。

怎么办?

版本选择

虽然TensorFlow的2.0版本中,增加了很多光鲜靓丽的新功能。但是TensorFlow 1.x目前比较稳定,建议使用TensorFlow 1.x版本开发实际项目,并跟进2.x版本所更新的技术。等到2.x版本更为稳定的时候,才考虑将实际项目切换到2.x。

应对方案

TensorFlow框架的1.x版本与2.x版本差异较大。建议采用1.x与2.x版本共存的方式来解决。

Anaconda创建虚拟环境

  • 查看目前的虚拟环境

    使用conda info --envs查看当前环境信息

    
    
    base                  *  /anaconda3

    显示结果中可以看到,当前虚环境的名字是“base”,是Anaconda默认的Python环境。

  • 使用python --version来查看Python版本

    Python 3.7.3

    可以知道,当前Python版本为3.7.3。

  • 创建Python虚拟环境

    conda create --name tf2 python=3.7.3

    The following packages will be downloaded:
    
        package                    |            build
        ---------------------------|-----------------
        ca-certificates-2019.5.15  |                0         133 KB
        certifi-2019.6.16          |           py37_0         154 KB
        openssl-1.1.1c             |       h1de35cc_1         3.4 MB
        pip-19.1.1                 |           py37_0         1.8 MB
        setuptools-41.0.1          |           py37_0         635 KB
        sqlite-3.29.0              |       ha441bb4_0         2.4 MB
        wheel-0.33.4               |           py37_0          39 KB
        ------------------------------------------------------------
                                               Total:         8.5 MB
    
    The following NEW packages will be INSTALLED:
    
      ca-certificates    pkgs/main/osx-64::ca-certificates-2019.5.15-0
      certifi            pkgs/main/osx-64::certifi-2019.6.16-py37_0
      libcxx             pkgs/main/osx-64::libcxx-4.0.1-hcfea43d_1
      libcxxabi          pkgs/main/osx-64::libcxxabi-4.0.1-hcfea43d_1
      libedit            pkgs/main/osx-64::libedit-3.1.20181209-hb402a30_0
      libffi             pkgs/main/osx-64::libffi-3.2.1-h475c297_4
      ncurses            pkgs/main/osx-64::ncurses-6.1-h0a44026_1
      openssl            pkgs/main/osx-64::openssl-1.1.1c-h1de35cc_1
      pip                pkgs/main/osx-64::pip-19.1.1-py37_0
      python             pkgs/main/osx-64::python-3.7.3-h359304d_0
      readline           pkgs/main/osx-64::readline-7.0-h1de35cc_5
      setuptools         pkgs/main/osx-64::setuptools-41.0.1-py37_0
      sqlite             pkgs/main/osx-64::sqlite-3.29.0-ha441bb4_0
      tk                 pkgs/main/osx-64::tk-8.6.8-ha441bb4_0
      wheel              pkgs/main/osx-64::wheel-0.33.4-py37_0
      xz                 pkgs/main/osx-64::xz-5.2.4-h1de35cc_4
      zlib               pkgs/main/osx-64::zlib-1.2.11-h1de35cc_3

    Proceed ([y]/n)?

    创建过程中会提示是否安装对应软件包,输入“Y”,则下载及安装软件包。

    Downloading and Extracting Packages
    wheel-0.33.4         | 39 KB     | ############################################################ | 100% 
    openssl-1.1.1c       | 3.4 MB    | ############################################################ | 100% 
    certifi-2019.6.16    | 154 KB    | ############################################################ | 100% 
    setuptools-41.0.1    | 635 KB    | ############################################################ | 100% 
    pip-19.1.1           | 1.8 MB    | ############################################################ | 100% 
    sqlite-3.29.0        | 2.4 MB    | ############################################################ | 100% 
    ca-certificates-2019 | 133 KB    | ############################################################ | 100% 
    Preparing transaction: done
    Verifying transaction: done
    Executing transaction: done
    #
    # To activate this environment, use
    #
    #     $ conda activate tf2
    #
    # To deactivate an active environment, use
    #
    #     $ conda deactivate

    虚拟环境tf2创建成功。

    conda activate tf2             #将虚拟环境tf2作为当前的Python环境
    conda deactivate               #使用默认的Python环境

    如果使用Windows,激活和取消激活虚拟环境的命令如下:

    activate tf2
    deactivate
  • 检查Python虚环境是否创建成功

    conda info --envs

    显示:

    # conda environments:
    #
    base                  *  /anaconda3
    tf2                      /anaconda3/envs/tf2

    可以看到,虚环境中多了一个“tf2”,表示创建成功。

  • 删除Python虚环境

    conda remove --name tf2 --all

    运行以上命令即可删除tf2虚拟环境,不会有任何显示。可以使用conda info --envs再次检查虚拟环境情况。

  • 在Python虚环境中安装TensorFlow 2.0

    conda activate tf2                    #激活tf2虚拟环境
    pip install tensorflow==2.0.0-alpha0  #安装TensorFlow 2.0版
  • 用工具进行代码版本升级

    在TensorFlow 2.x版本中,提供了一个升级TensorFlow 1.x版本代码的工具——tf_upgrade_v2。该工具可以非常方便地将TensorFlow 1.x版本中编写的代码移植到TensorFlow 2.x中。

    tf_upgrade_v2 --infile "1.x代码文档"  -outfile "2.x代码文档"

    tf_upgrade_v2工具支持单文档转换和多文档批量转换两种方式。

    1. 单个代码升级

      tf_upgrade_v2 --infile foo_v1.py  --outfile foo_v2.py
    2. 批量代码升级

      tf_upgrade_v2 -intree foo_v1  -outtree foo_v2

      这里的foo_v1指的是1.x代码文档目录,foo_v2指的是升级后的2.x代码文档存放目录。

      需要注意的是tf_upgrade_v2工具并不是万能的,它只能实现基本的API升级。一般在转化完成之后还需要手动二次修改。

  • 2.x版本对于TF-Hub、T2T等库的影响

    没有影响。这两个库同时支持1.x以及2.x。

原文链接 大专栏  https://www.dazhuanlan.com/2019/08/17/5d576c490a0cc/

猜你喜欢

转载自www.cnblogs.com/chinatrump/p/11415105.html