文章目录
- 一. 安装Tensorflow
- 1. 安装miniforge3
- 2. 安装Tensorflow
- 3. 测试
- 二. TensorFlow集成到idea
- 三. 第一个tensorflow程序
一. 安装Tensorflow
1. 安装miniforge3
需要miniforge3,如以前环境较乱,最好是删除自己装过的miniforge3环境重装。
1.1. 删除已有环境
cd~rm-rf~/miniforge3 rm-rf.conda rm-rf.condarc完成后,进入 .zshrc ,gg 将末端配置 miniforge3 的 PATH 配置删除。
1.2. 下载 Miniforge3_MacOS_ARM64 选择 Miniforge3-MacOSX-arm64
miniforge download
chmod+x ~/Miniforge3-MacOSX-arm64.shsh~/Miniforge3-MacOSX-arm64.shsource~/miniforge3/bin/activate conda--version#conda 23.3.1
- 按提示装, 并确保.bash_profile文件配置了miniforge3的– 这步我没操作,也没有什么影响
- 安装路径一定要在~/miniforge3, 不然可能有权限问题
vim~/.bash_profile export PATH="/{user_home}/miniforge3/bin:$PATH"source $HOME/.bash_profile1.3. 创建一个conda环境
# 3.8和3.9都可以,pytorch需要3.9, 我这里安装了3.9版本conda create-ntf26python==3.9conda create-ntf26python==3.8完成以上的准备后,才正式开始安装tensorflow,可安装tensorflow2.5/2.6,并且不需要再去github下载安装包。
2. 安装Tensorflow
Tensorflow需要安装的三个包是tensorflow-deps、tensorflow-macos、tensorflow-metal。其中前两个是必须的,tensorflow-metal是让tensorflow能用上Apple Silicon芯片的GPU。
一个官网都没告诉你的关键来了,这三个包必须严格安装对应的版本!具体的版本要关注官方安装文档最后的Releases表格。比如说,目前正式发布的tensorflow-macos是v2.9,那么同步安装的tensorflow-deps必须是v2.9、tensorflow-metal必须是v0.5.0,否则后面运行过程会报错失败。
详细步骤参考: apple开发者官网
2.1. 切换到自己的conda环境
conda activate tf26
2.2. 安装tensorflow
未安装过的安装tensorflow依赖包,安装过的需要卸载旧版。这里我没有安装过,所以继续往下走:
# 指定定版本安装condainstall-capple tensorflow-deps==2.6.0
2.3. 安装tensorflow
# 会有个报错, 自己安装下 pip install torch 然后再重新执行一遍python-mpipinstalltensorflow-macos
2.4. 安装tensorflow-metal
python-mpipinstalltensorflow-metal3. 测试
进入python终端查看是否能导入tensorflow
python>>>importtensorflow as tf>>>tf.version<module'tensorflow._api.v2.version'from'/Users/lianggao/miniforge3/envs/tf/lib/python3.10/site-packages/tensorflow/_api/v2/version/__init__.py'>参考:
https://zhuanlan.zhihu.com/p/474212619
https://www.readern.com/install-tensorflow-on-apple-silicon-macbook.html
二. TensorFlow集成到idea
1.创建一个python项目,或新的python模块
2.添加interpreter
指定miniforge3的pyhthon位置
3.创建模块
三. 第一个tensorflow程序
importtensorflowastf# helloworld 使用 TensorFlow 创建一个常量 op,这个 op 作为节点被添加到默认图。# 这个值被创建者返回并显示在输出中。hello=tf.constant('Hello, TensorFlow!')# Start tf sessionsess=tf.Session()# Run the opprint(sess.run(hello))报错1
Traceback(most recent call last):File"/Users/lianggao/MyWorkSpace/001-360/001project-360/py_practise/tensflow-demo/tensflow_2.py",line10,in<module>sess=tf.Session()AttributeError:module'tensorflow'has no attribute'Session'.Did you mean:'version'?原因是:我们引用的TensorFlow2.0版本,此版本与1.0相比没有模块Session。
这样修改:
sess=tf.Session()#====>sess=tf.compat.v1.Session()
报错2:
File"/Users/lianggao/miniforge3/lib/python3.10/site-packages/tensorflow/python/client/session.py",line1118,in _run raiseRuntimeError('The Session graph is empty.Add operations to the ' RuntimeError:The Session graph is empty.Add operations to the graph before callingrun().问题产生的原因:无法执行sess.run()的原因是tensorflow版本不同导致的,tensorflow版本2.0无法兼容版本1.0.
importtensorflowastf tf.compat.v1.disable_eager_execution()hello=tf.constant('Hello, TensorFlow!')# Start tf sessionsess=tf.compat.v1.Session()# Run the opprint(sess.run(hello))输出---b'Hello, TensorFlow!'---