一. 安装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.sh
sh ~/Miniforge3-MacOSX-arm64.sh
source ~/miniforge3/bin/activate

conda --version
#conda 23.3.1
  1. 按提示装, 并确保.bash_profile文件配置了miniforge3的 – 这步我没操作,也没有什么影响
  2. 安装路径一定要在~/miniforge3, 不然可能有权限问题
vim ~/.bash_profile
export PATH="/{user_home}/miniforge3/bin:$PATH"

source $HOME/.bash_profile

 

1.3. 创建一个conda环境

    # 3.8和3.9都可以,pytorch需要3.9, 我这里安装了3.9版本
    conda create -n tf26 python==3.9
    conda create -n tf26 python==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依赖包,安装过的需要卸载旧版。这里我没有安装过,所以继续往下走:

 # 指定定版本安装   
conda install -c apple tensorflow-deps==2.6.0 

 
2.3. 安装tensorflow

# 会有个报错, 自己安装下 pip install torch     然后再重新执行一遍 
python -m pip install tensorflow-macos

 
2.4. 安装tensorflow-metal

python -m pip install tensorflow-metal 

 

3. 测试

进入python终端查看是否能导入tensorflow

python

>>> import tensorflow 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程序

import tensorflow as tf
 
# helloworld 使用 TensorFlow 创建一个常量 op,这个 op 作为节点被添加到默认图。
# 这个值被创建者返回并显示在输出中。

 
hello = tf.constant('Hello, TensorFlow!')
 
# Start tf session
sess = tf.Session()
 
# Run the op
print(sess.run(hello))

报错1

Traceback (most recent call last):
  File "/Users/lianggao/MyWorkSpace/001-360/001project-360/py_practise/tensflow-demo/tensflow_2.py", line 10, 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", line 1118, in _run
    raise RuntimeError('The Session graph is empty. Add operations to the '
RuntimeError: The Session graph is empty. Add operations to the graph before calling run().

问题产生的原因:无法执行sess.run()的原因是tensorflow版本不同导致的,tensorflow版本2.0无法兼容版本1.0.

import tensorflow as tf

tf.compat.v1.disable_eager_execution()
hello = tf.constant('Hello, TensorFlow!')

# Start tf session
sess = tf.compat.v1.Session()

# Run the op
print(sess.run(hello))

输出
---
b'Hello, TensorFlow!'
---
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐