文章目录

  • 说明
  • conda, minconda, miniforge的关系
    • Conda vs Pip
  • 安装步骤
  • 遇到的问题
    • tensorflow.keras没有正确安装上
  • 参考链接

说明

由于目前Anaconda没有支持arm架构的版本,在M1芯片Mac上安装的Anaconda是非常不稳定的,而且仅支持最高3.8版本的Python。而官网原生支持运行在arm架构上的Python版本为3.9.1,所以综合来讲我们只能寻找一种替代方案,那就是miniforge。

conda, minconda, miniforge的关系

Anaconda vs Miniconda vs Miniforge
他们的核心都是包含conda这一工具,来实现 python 环境(environment) 和 包(package) 管理的,(其实不仅仅可以用来管理python,很多语言R, Java, C都支持);然后就可以通过。
Anaconda 和 Miniconda 是一个公司的产品,商用是付费的,个人暂时免费;而Miniforge是由社区主导,用GitHub托管,完全免费。Miniconda 和 Miniforge 是差不多的产物,代表着轻量化,而Anaconda是完整版,就略显臃肿。

(老手) Miniconda = Python + conda (with minimal dependencies, like openssl, ncurses…)

(新手) Anaconda = Python + conda + meta package (about 160 Python pkgs, like curl, numpy, pandas…)

简言之,Anaconda = Miniconda + more packages。Anaconda 一般还包括一个图形界面,主要是多了一些基本的包,很省事,不用再单独安装了,但也有一些可能一直用不到,白白占用了空间。Miniconda 可以按需求安装库,但也可以借助conda install anaconda手动实现anaconda一样的 pre-installed package。一个是安装初期花费更多时间下载,一个是后期花更多时间单独安装。我个人倾向于 Miniconda,一切从简。

Miniforge 使用conda-forge 作为默认 channel,而 Miniconda 使用anaconda.org 作为默认channel。conda channels (源) 是 packages 存储的位置,也即是你是从哪个来源下载这个包,对应到conda内部处理则是下载文件的链接。因为不同源会有相同名字的包,因此必须指定来源,同时安装conda的时候也会有一个默认的channel。目前主流的就是 conda-forge,齐全且更新快。

结论:

Miniforge 比 Anaconda\Miniconda 更早支持了Apple M1芯片。2022年5月6日Anaconda官方宣布原生支持了Apple M1版本。在苹果官方的Tensorflow加速训练教程中也是推荐的Miniforge。

Conda vs Pip

conda package的来源在前面介绍过了,而pip的来源是 PyPI (Python Package Index)。pip是专门针对python打包而成的,属于wheels or source distributions,需要compiler来安装;而conda packages are binaries,因此包含例如C语言写的库,同时也不需要compilers。pip的没有严格的依赖冲突检查,而conda是会有严格的依赖冲突检查。

通常我们安装一个python包,直接用pip install 就行,但如果我们想要多个python环境,也就需要用到virtualenv;同时如果这个包没有不是 Python packages,是用C语言写的;这时候就需要Conda登场了,它同时解决了以上所有问题。

简言之,比较推荐的是用conda创建虚拟python环境,然后conda install pip后使用pip来安装需要的包,遇到不支持pip的,或者特殊编译的,可以根据开发者的说明使用conda进行安装。所以优先pip install,不行再conda install。
需要注意的是 pip 和 conda 安装包对象的名称可能是不一样的,例如conda - pytorch,pip - torch。

安装步骤

  1. brew install pyenv
  2. pyenv install --list
  3. pyenv install -v miniforge3-4.10.3-10
  4. pyenv local miniforge3-4.10.3-10
  5. conda install -c apple tensorflow-deps -y
  6. pip install tensorflow-macos==2.9.0
    注意:此处要安装2.9.0,如果装最新的2.11.0,则有些模块装不上,如tensorflow.keras
  7. 测试:
python -c "import tensorflow as tf; print(tf.config.list_physical_devices())"

正常会输出:

[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU')]
  1. pip install tensorflow-metal==0.5.0
  2. 再次调用tf.config.list_physical_devices()测试 ,会看到:
[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'), PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
  1. 测试tensorflow基本API,先安装pip install tensorflow-datasets
#! /usr/bin/env python3import tensorflow as tf
import tensorflow_datasets as tfds(ds_train, ds_test), ds_info = tfds.load('mnist',split=['train', 'test'],shuffle_files=True,as_supervised=True,with_info=True,
)def normalize_img(image, label):"""Normalizes images: `uint8` -> `float32`."""return tf.cast(image, tf.float32) / 255., labelbatch_size = 128ds_train = ds_train.map(normalize_img, num_parallel_calls=tf.data.experimental.AUTOTUNE)
ds_train = ds_train.cache()
ds_train = ds_train.shuffle(ds_info.splits['train'].num_examples)
ds_train = ds_train.batch(batch_size)
ds_train = ds_train.prefetch(tf.data.experimental.AUTOTUNE)ds_test = ds_test.map(normalize_img, num_parallel_calls=tf.data.experimental.AUTOTUNE)
ds_test = ds_test.batch(batch_size)
ds_test = ds_test.cache()
ds_test = ds_test.prefetch(tf.data.experimental.AUTOTUNE)model = tf.keras.models.Sequential([tf.keras.layers.Conv2D(32, kernel_size=(3, 3),activation='relu'),tf.keras.layers.Conv2D(64, kernel_size=(3, 3),activation='relu'),tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
#   tf.keras.layers.Dropout(0.25),tf.keras.layers.Flatten(),tf.keras.layers.Dense(128, activation='relu'),
#   tf.keras.layers.Dropout(0.5),tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(loss='sparse_categorical_crossentropy',optimizer=tf.keras.optimizers.Adam(0.001),metrics=['accuracy'],
)model.fit(ds_train,epochs=12,validation_data=ds_test,
)

如果正常运行,就说明tensorflow环境已经搭建好了。

遇到的问题

tensorflow.keras没有正确安装上

参考链接

  • conda官网 https://docs.conda.io/projects/conda/en/latest/

  • 下载安装Anaconda: https://www.anaconda.com/products/distribution#Downloads

  • 下载安装Miniconda:https://docs.conda.io/en/latest/miniconda.html

  • 下载安装Miniforge:https://conda-forge.org/miniforge

Apple M1 上安装tensorflow开发环境相关推荐

  1. 在odoo服务器文件夹,在windows10上安装odoo12开发环境的方法

    前言 鉴于好多朋友说没有mac电脑,windows开发其实也差不了多远,只是个人习惯问题,而且吧,windows的电脑其实配环境也挺快的其实,我在这里再稍微补一个比较简单的windows环境部署,希望 ...

  2. 一个c语言程序的开发环境,C语言入门(2)——安装VS2013开发环境并编写第一个C语言程序...

    在C语言入门系列中,我们使用Visual studio 2013 Professional作为开发工具.本篇详细介绍如何安装Visualstudio 2013 Professional并写出我们第一个 ...

  3. 08_树莓派安装Qt开发环境

    目的: 通过本章节,在树莓派上安装Qt开发环境. 目录 1.Qt简介 2.安装Qt开发环境 2.1.安装指令 2.2.示例demo 2.2.1.打开Qt Creator工具 2.2.2.新建工程 2. ...

  4. VM上搭建IPhone开发环境

    Windows平台上安装搭建iPhone/iPad的开发环境 一棵树技术分享2010/09/09给我留言8,644 views 来自 http://bbs.ldci.com.cn/read.php?t ...

  5. 在Windows中安装iPhone开发环境

    很多朋友希望在体验或学习iphone开发,但是iphone开发环境一般需要安装在mac计算机下mac os中.  这给许多朋友带来了额外成本投入.  网上已经有各种破解方法,在非苹果电脑上安装ipho ...

  6. Windows中安装iPhone开发环境

    标题:在Windows中安装iPhone开发环境 很多朋友希望在体验或学习iphone开发,但是iphone开发环境一般需要安装在mac计算机下mac os中. 这给许多朋友带来了额外成本投入. 网上 ...

  7. Deepin Linux v20+安装.NET开发环境的方法

    在Deepin 20+上安装.NET开发环境基本可以参照Debian的安装方式,无非就是.NET Core和Mono,具体方法如下: 使用 APT 进行安装可通过几个命令来完成. 安装 .NET 之前 ...

  8. ubuntu安装python_使用WSL在Windows上搭建Python开发环境

    简介 2016年,微软推出了Windows Subsystem for Linux(WSL),这使得Windows具有了强大的Unix功能.2019年5月,微软宣布发布了具有更新架构的WSL2,该架构 ...

  9. 教你10分钟内在Windows上完成Rails开发环境的安装和配置

    原文:http://www.cnblogs.com/tambor/archive/2011/12/25/rails_anzhuang_railsinstaller.html 一般来说,Windows开 ...

最新文章

  1. JDK9为何要将String的底层实现由char[]改成了byte[]?
  2. 在敏捷研发过程中,Scrum Master角色的哪些事
  3. mysql 5.7 Stage Tracking DDL进度跟踪
  4. python 文件编码的识别_【python】python编码方式,chardet编码识别库
  5. 8086汇编-实验9-字符打印
  6. 框架设计:实现数据的按需更新与插入的改进--用数据对比进一步说明
  7. jquery 动态添加一行数据,支持动态删除
  8. 运用递归将两个链表进行连接
  9. Java是否为回文_java语言判断一个数字是否为回文数字
  10. 【英语学习】【Daily English】U13 Holiday L03 I certainly didn't expect this
  11. .7 二叉查找树的 建立 insert search remove 操作
  12. 使用SVG绘制湖南地图
  13. 计算机本地组策略编辑器在哪里,win7系统本地组策略编辑器在哪的操作方法
  14. office2010专业版
  15. web自动化你需要知道的
  16. (附源码)基于PHP二手服装网站 毕业设计 201711
  17. python调用小票打印机_PyQt5中使用Qprinter打印热敏小票
  18. mysql老司机之路
  19. 数字IC后端设计技术全局观
  20. 冬至了,该盘点盘点2021年中国企业服务产业了

热门文章

  1. 机器学习_评价指标Accuracy(准确率)、Precision(精准度/查准率)、Recall(召回率/查全率)、F1 Scores详解
  2. 【ACWing】1264. 动态求连续区间和
  3. 传播易7月发力 微信大号营销成为前锋
  4. 微信公众号添加Word文档附件教程_公众号添加Excel、PDF、PPT、Zip等附件教程
  5. die_visual
  6. 怎么选择国际短信平台?
  7. Shell Tools and Scripting
  8. 几年前之所预言,其人不死言之依然
  9. Coursera机器学习第三周Regularization练习题
  10. android陀螺仪手机垂直角度,Android设备中实现陀螺仪(Orientation Sensor)