文章目录

  • TensorFlow详细配置(Python版本)
    • 安装Python环境(Python全家桶 Anaconda3)
    • 环境配置
    • TensorFlow官网对照表
    • CUDA安装
    • cuDNN 安装
    • TensorFlow安装
    • Jupyter Notebook使用方法
    • 其他问题

TensorFlow详细配置(Python版本)

安装Python环境(Python全家桶 Anaconda3)

  • 最新版下载地址: download

  • 旧版本下载地址:download

  • 下载后直接安装

一直下一步,安装完成。

环境配置

测试是否安装成功:
打开cmd
输入指令: python //查询Python版本 和
输入指令: conda --version或者输入conda info也行 //查询conda信息

简单过程如下

    1. 改变anaconda默认python版本:首先创建一个名为python39的环境,指定的Python版本是3.9。

在命令行里输入: conda create --name python39 python=3.9(默认路径安装,一般都是C:\盘)

conda create --prefix=D:\ProgramData\anaconda3\envs\python39 python=3.9(指定路径安装)

  • 2、等待等待再等待! 等待更新完,然后输入以下命令。 (因为要把python3.9的相关包下载下来,所以比较慢,请耐心等待)

  • 3、

  • 要激活该环境,请使用:conda activate D:\ProgramData\anaconda3\envs\python39

  • 停用该环境,请使用: conda deactivate D:\ProgramData\anaconda3\envs\python39

  • 4、python --version 可以看到,系统已经切换到了3.9的环境

4、对虚拟运行环境的补充操作

(1)如果要删除我们配置的新环境,则:
conda env remove -n env_name (env_name:指要删除的环境的名字) 例:conda env remove -n TF2.9 (删除TensorFlow2.9版本)
(2)显示所有环境:
conda env list
(3)当分享代码的时候,同时也需要将运行环境分享给大家,执行如下命令可以将当前环境下的 package 信息存入名为 environment 的 YAML 文件中。
conda env export > environment.yaml
(4)当执行他人的代码时,也需要配置相应的环境。这时你可以用对方分享的 YAML 文件来创建一摸一样的运行环境。
conda env create -f environment.yaml

改变Anaconda 默认Python版本(注意:前提是要先下载其他Python版本,上面已介绍)

TensorFlow官网对照表

地址:https://tensorflow.google.cn/install/source_windows?hl=zh-cn

CPU版本:

GPU版本:

CUDA安装

在显卡驱动被正确安装的前提下,在命令行里输入nvidia-smi.exe,效果如图所示

注意:可以看到显示CUDA Version为11.7,说明该显卡最高支持到11.7, 你也可以选择更低的版本比如 11.6,11.5更低的版本

cuda下载地址:https://developer.nvidia.com/cuda-toolkit-archive

安装cuda:
一直下一步安装即可,安装完成后。

现在需要重启电脑,然后Win+R进入cmd界面,输入nvcc -V,出现如下界面,代码cuda已经安装成功了。
注:必须要重启电脑,否则运行nvcc -V 会找不到命令。

cuDNN 安装

cuDNN下载地址:
https://developer.nvidia.com/rdp/cudnn-archive

对下载的cuDNN压缩包解压后出现如下三个文件夹子,

配置环境变量:

Windows10检查Cuda和cuDNN是否安装成功?

1 .首先win+R进入CMD,在命令行输入nvcc -V,如下图所示,则表示cuda已经安装成功。

2 .进入到cuda的安装路径,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\demo_suite,找到如下两个.exe文件:

首先执行:deviceQuery.exe,查看是否出现如下界面:

然后执行bandwidthTest.exe,出现如下界面,则代代表cuDNN也安装成功。

cuda和cudnn完整安装步骤地址:
https://blog.csdn.net/jhsignal/article/details/111401628

tensorflow官网安装教程
https://tensorflow.google.cn/install/pip?hl=zh-cn

TensorFlow安装

更新最新pip指令
pip install --upgrade pip
显示tensorflow
pip show tensorflow
卸载tensorflow
pip uninstall tensorflow

安装TensorFlow-GPU
根据上文中的TensorFlow-GPU版对照表,我们可以选择安装TensorFlow-GPU2.6.0。

这里再次提醒自行搭配版本的读者,一定要看清对照表内python = 3.9、tensorflow-gpu = 2.6、cudnn = 8.1、cuda=11.2这四者之间的版本号是否匹配!!!若版本不匹配只能删除重下!!!

这里博主选择的是TensorFlow-GPU2.6.0这个版本。选择好后进入cmd,输入命令
conda create -n tf2

此时在anaconda内创建一个名为tf2的虚拟环境,输入命
conda activate tf2

进入tf2环境内,创建环境后输入以下命令
gpu:pip install tensorflow-gpu==2.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
cpu:pip install tensorflow==2.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
其中-i 参数指明了下载源,这里依然使用了清华的镜像节点,以获得较快的下载速度。

当然也可以使用conda命令来下载tensorflow,只需要输入
conda install tensorflow-gpu==2.6.0

gpu版本安装:

cpu版本安装:

测试:

import tensorflow as tfprint(tf.__version__)print(tf.config.list_physical_devices('GPU'))print(tf.config.list_physical_devices('CPU'))tf.test.is_gpu_available() #true (表示:优先使用GPU)

Jupyter Notebook使用方法

输入一些代码执行测试:

import tensorflow as tfprint(tf.__version__)print(tf.config.list_physical_devices('GPU'))print(tf.config.list_physical_devices('CPU'))tf.test.is_gpu_available() #true (表示:优先使用GPU)x=[[1,]]m=tf.matmul(x,x)print(m)

其他问题

import tensorflow as tf
执行后->遇到的错误:

Traceback (most recent call last):File "", line 1, in File "C:\Users\qq978\AppData\Roaming\Python\Python39\site-packages\tensorflow\__init__.py", line 41, in from tensorflow.python.tools import module_util as _module_utilFile "C:\Users\qq978\AppData\Roaming\Python\Python39\site-packages\tensorflow\python\__init__.py", line 40, in from tensorflow.python.eager import contextFile "C:\Users\qq978\AppData\Roaming\Python\Python39\site-packages\tensorflow\python\eager\context.py", line 32, in from tensorflow.core.framework import function_pb2File "C:\Users\qq978\AppData\Roaming\Python\Python39\site-packages\tensorflow\core\framework\function_pb2.py", line 16, in from tensorflow.core.framework import attr_value_pb2 as tensorflow_dot_core_dot_framework_dot_attr__value__pb2File "C:\Users\qq978\AppData\Roaming\Python\Python39\site-packages\tensorflow\core\framework\attr_value_pb2.py", line 16, in from tensorflow.core.framework import tensor_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__pb2File "C:\Users\qq978\AppData\Roaming\Python\Python39\site-packages\tensorflow\core\framework\tensor_pb2.py", line 16, in from tensorflow.core.framework import resource_handle_pb2 as tensorflow_dot_core_dot_framework_dot_resource__handle__pb2File "C:\Users\qq978\AppData\Roaming\Python\Python39\site-packages\tensorflow\core\framework\resource_handle_pb2.py", line 16, in from tensorflow.core.framework import tensor_shape_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__shape__pb2File "C:\Users\qq978\AppData\Roaming\Python\Python39\site-packages\tensorflow\core\framework\tensor_shape_pb2.py", line 36, in _descriptor.FieldDescriptor(File "C:\Users\qq978\AppData\Roaming\Python\Python39\site-packages\google\protobuf\descriptor.py", line 561, in __new___message.Message._CheckCalledFromGeneratedFile()TypeError: Descriptors cannot not be created directly.If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.If you cannot immediately regenerate your protos, some other possible workarounds are: 1. Downgrade the protobuf package to 3.20.x or lower. 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates

chatgpt回答:

错误提示表明您使用的TensorFlow包存在问题。似乎由TensorFlow使用的Protocol Buffers(protobuf)生成的代码已过时,并且与当前安装的TensorFlow包版本不兼容。错误提示提供了一些可能的解决方案:1. 重新生成生成的代码:如果错误发生在_pb2.py文件中,您需要使用至少3.19.0版本的`protoc`(Protocol Buffers编译器)重新生成该文件。通常,这涉及运行类似于`protoc --python_out=. your_proto_file.proto`的命令,以从.proto文件生成Python代码。确保您安装了最新版本的`protoc`。2. 降级protobuf包:如果立即无法重新生成代码,可以尝试将protobuf包降级到3.20.x版本或更低版本。您可以使用像pip这样的软件包管理器来安装特定版本的protobuf包,例如:`pip install protobuf==3.20.0`。3. 使用纯Python解析:将环境变量`PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION`设置为`python`。这种解决方法使用纯Python解析Protocol Buffers,可能速度较慢,但可以帮助绕过错误。您可以在运行Python代码之前设置该变量,例如:`export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python`。请确保按照错误消息中的说明进行操作,并参考TensorFlow文档中提供的链接以获取有关建议的解决方法的更多信息。

解决方法:pip install protobuf==3.20.0