TensorFlow 基础知识及安装

参考:TensorFlow 入门

TensorFlow 是什么

TensorFlow 是一个深度学习库,由 Google 开源,可以对定义在 Tensor(张量)上的函数自动求导。

  • Tensor(张量) 意味着 N 维数组,Flow(流) 意味着基于数据流图的计算,TensorFlow 即为 张量从图的一端流动到另一端

  • 一大亮点是支持异构设备分布式计算,它能够在各个平台上自动运行模型,从电话、单个 CPU / GPU 到成百上千 GPU 卡组成的分布式系统

  • 支持 CNN、RNN 和 LSTM 算法,是目前在 Image,NLP 最流行的深度神经网络模型

为什么用 TensorFlow

深度学习通常意味着建立具有很多层的大规模的神经网络。

  • 除了输入 X,函数还使用一系列参数,其中包括标量值、向量以及最昂贵的矩阵和高阶张量

  • 在训练网络之前,需要定义一个代价函数,常见的代价函数包括回归问题的方差以及分类时候的交叉熵

  • 训练时,需要连续的将多批新输入投入网络,对所有的参数求导后,代入代价函数,从而更新整个网络模型

这个过程中有两个主要的问题:

  1. 较大的数字或者张量在一起相乘百万次的处理,使得整个模型代价非常大

  2. 手动求导耗时非常久

TensorFlow 可以对函数自动求导以及分布式计算,就能节省很多时间来训练模型。其优点主要有:

  • 基于Python,写的很快并且具有可读性

  • 在多GPU系统上的运行更为顺畅

  • 代码编译效率较高

  • 社区发展的非常迅速并且活跃

  • 能够生成显示网络拓扑结构和性能的可视化图

TensorFlow 工作原理

TensorFlow 是用 数据流图(data flow graphs) 技术来进行数值计算的。

数据流图是描述有向图中的数值计算过程。

有向图中,结点通常代表数学运算,边表示结点之间的某种联系,它负责传输多维数据 (Tensors)。

结点可以被分配到多个计算设备上,可以异步和并行地执行操作。因为是有向图,所以只有等到之前的入度结点们的计算状态完成后,当前节点才能执行操作。

image

TensorFlow 安装

  1. 启动 Anaconda prompt,建立一个 conda 计算环境。可以在官网查看Tensorflow支持的Python版本。
    conda create -n tensorflow python=3.9
    结束后显示
    image
    这就进入了第二步。在此之前也可以查看有哪些环境,使用conda env listconda info --env

  2. 激活tensorflow环境:conda activate tensorflow
    此时环境应该变为了 tensorflow
    image
    再使用豆瓣的 tensorflow 镜像实际安装 tensorflow:python -m pip install tensorflow -i https://pypi.douban.com/simple

    • 这里可以指定 tensorflow 的版本。查看 tensorflow 的可使用版本输入conda search --full --name tensorflow
  3. 检查是否真的安装成功:

  • 方法1:base 环境下输入conda list tensorflow

    • 当列表中出现tensorflow,就说明成功安装了
    • 如果列表中只有 tensorflow-estimator,而没有 tensorflow 这个文件,那说明未安装成功,要检查前面哪个环节疏漏了
  • 方法2:tensorflow环境下输入python打开Python环境,再导入tensorflow包进行测试:import tensorflow

  1. 选择性查看版本:tensorflow.__version__
    image

  2. 补充1:在 Jupyer Notebook 中使用 tensorfolw 模块
    启动 Anaconda prompt,先输入conda activate tensorflow或者activate tensorflow激活这个虚拟环境,再输入jupyter notebook,在这个虚拟环境下(而不是 base)启动 jupyter。
    输入以下代码检查:

import tensorflow as tf

tf.compat.v1.disable_eager_execution()
hello = tf.constant('hello, tensorflow')
sess = tf.compat.v1.Session()
print(sess.run(hello))
  • 如果运行成功,输出为b'hello, tensorflow'说明已经完全安装好 Tensorflow

  • 如果还是不行,打开 Anaconda Navigator ,在【HOME】中切换到虚拟环境 Tensorflow,检查其中的 Jupyter Notebook 是否已安装

    • 如果按钮为“Launch”,代表已安装

    • 如果按钮为“Install”,代表该环境下的 Jupyter 还未安装,当输入jupyter notebook时,浏览器打开的还是 base 环境下的 Jupyter,而不是 TensorFlow 环境下的 Jupyter,所以就算安装了 tensorflow 却import不到

  1. 补充2:
    安装成功后,每次使用 TensorFlow 的时候需要激活 conda 环境:(base)$ conda activate tensorflow。不用 TensorFlow 的时候,关闭环境:(tensorflow)$ conda deactivate。再次使用的时候再激活。

  2. 卸载 tensorflow:
    启动 Anaconda prompt,输入pip uninstall tensorflow

keras安装

Anaconda下的python可以直接去pycharm安装keras:File——settings——Project——Project Interpreter。点击左上角的加号“+”,输入 keras,可能会出现最新版本的keras,在右下角勾选“Specify version”中选择对应的版本再 install 即可。

如果为了Jupyter或其它,依旧是在 Anaconda promt 的 tensorflow 环境下安装 keras:

  1. 先安装三个包
conda install mingw libpython # 如果已经有了就不需要了
pip install theano # 可以用镜像
  1. 再安装keras的镜像:(keras是基于tensorflow代码高度封装的库,其版本与 tensorflow 的版本要严格对应,如果版本号错了装完会有提示应该用哪个版本)
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --upgrade keras==版本号
    或者
    pip install keras==版本号 -i https://pypi.tuna.tsinghua.edu.cn/simple

本机默认装的是 tensorflow 2.9.1,对应的 keras 版本为 2.9.0

  1. 如果打开 jupyter notebook 后 kernal 不是 tensorflow,选择 tensorflow 再运行,如果没有则需要手动添加:
  • 在 Anaconda prompt 中查看当前可用的 kernel jupyter kernelspec list
    image

  • 添加 Python kernel:conda activate tensorflow,tensorflow 是之前创建的虚拟环境名字

  • 在 tensorflow 虚拟环境下,安装 ipykernel:
    conda install ipykernel
    python -m ipykernel install --name tensorflow

  • 再次查看当前可用的 kernel:jupyter kernelspec list
    image

  • 最后输入jupyter notebook打开 Jupyter Notebook 检查
    image
    image

posted @ 2022-08-02 17:13  Vonos  阅读(332)  评论(0)    收藏  举报