文章目录
- 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信息
简单过程如下
-
- 改变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 tf
print(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 tf
print(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 "<stdin>", line 1, in <module>
File "C:\Users\qq978\AppData\Roaming\Python\Python39\site-packages\tensorflow\__init__.py", line 41, in <module>
from tensorflow.python.tools import module_util as _module_util
File "C:\Users\qq978\AppData\Roaming\Python\Python39\site-packages\tensorflow\python\__init__.py", line 40, in <module>
from tensorflow.python.eager import context
File "C:\Users\qq978\AppData\Roaming\Python\Python39\site-packages\tensorflow\python\eager\context.py", line 32, in <module>
from tensorflow.core.framework import function_pb2
File "C:\Users\qq978\AppData\Roaming\Python\Python39\site-packages\tensorflow\core\framework\function_pb2.py", line 16, in <module>
from tensorflow.core.framework import attr_value_pb2 as tensorflow_dot_core_dot_framework_dot_attr__value__pb2
File "C:\Users\qq978\AppData\Roaming\Python\Python39\site-packages\tensorflow\core\framework\attr_value_pb2.py", line 16, in <module>
from tensorflow.core.framework import tensor_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__pb2
File "C:\Users\qq978\AppData\Roaming\Python\Python39\site-packages\tensorflow\core\framework\tensor_pb2.py", line 16, in <module>
from tensorflow.core.framework import resource_handle_pb2 as tensorflow_dot_core_dot_framework_dot_resource__handle__pb2
File "C:\Users\qq978\AppData\Roaming\Python\Python39\site-packages\tensorflow\core\framework\resource_handle_pb2.py", line 16, in <module>
from tensorflow.core.framework import tensor_shape_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__shape__pb2
File "C:\Users\qq978\AppData\Roaming\Python\Python39\site-packages\tensorflow\core\framework\tensor_shape_pb2.py", line 36, in <module>
_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