傻瓜版M1配置Tensorflow

编程入门 行业动态 更新时间:2024-10-10 07:22:46

<a href=https://www.elefans.com/category/jswz/34/1762398.html style=傻瓜版M1配置Tensorflow"/>

傻瓜版M1配置Tensorflow

前文《macOS M1(AppleSilicon) 安装TensorFlow环境》介绍了如何给M1 macOS安装配置 Tensorflow环境。但在那篇文章中,有太多的依赖包安装,而在安装的过程中,可能会因为顺序的问题,依赖的安装会相互替换掉,导致最终可能因为各种各样的问题而导致失败,于是本文将简化安装配置过程,使用本文方法,应该可以大大提高安装的成功率。

前期准备

安装Tensorflow前,需要有两个前置准备:

  • Miniforge conda 环境

  • 安装好 Xcode Command Line Tools

Miniforge conda的安装可以参考《macOS M1(Apple Silicon) 安装配置 Conda 环境》,这里就不再赘述了。

至于 Xcode Command Line Tools ,正常情况下在安装 Miniforge 的时候就已经安装好,如果没有,可以使用下面的命令进行安装:

xcode-select --install

接下来我们需要下载一个 environment.yml 的文件,这个是 tensorflow 的依赖库列表文件。

以上步骤准备好之后,就可以开始安装。

安装过程

首先我们利用上面下载好的 environment.yml 文件来创建一个 conda 环境,命令具体如下:

conda env create --file=environment.yml --name=tf_mac

等待环境创建完成后,我们激活新创建的环境:

conda activate tf_mac

然后再使用 pip 安装好 Apple 提供的 tensorflow 库即可。(版本为aplha3,截止于发稿时最新版本)

pip install --upgrade --force --no-dependencies .1alpha3/tensorflow_macos-0.1a3-cp38-cp38-macosx_11_0_arm64.whl .1alpha3/tensorflow_addons_macos-0.1a3-cp38-cp38-macosx_11_0_arm64.whl

安装完成后,可以进入 ipython 测试以下安装包是否已经成功安装。(import tensorflow的时候,可能有点慢,一般等待以下即可)

ipython
In [1]: import tensorflowIn [2]: tensorflow.__version__
Out[2]: '2.4.0-rc0'

这样就完成了 M1 的 tensorflow 配置了。如果手上没有现成的 tensorflow 项目,可以使用文末提供的代码跑一下测试。

小结

使用本文的方法,几乎是一键即可完成安装配置,耗时和步骤都相对于之前有很大的优化。希望本文对你有用。如果你觉得文章对你用,记得关注收藏。你的关注和收藏是继续更新的动力哦。

【附】测试代码

下载代码,运行即可,运行前,请先安装依赖:

pip install tensorflow-datasets==2.1.0python cnn_benchmark.py

代码:

import tensorflowpat.v2 as tf
import tensorflow_datasets as tfds
import time
from datetime import timedeltatf.enable_v2_behavior()from tensorflow.python.framework.ops import disable_eager_execution
disable_eager_execution()from tensorflow.pythonpiler.mlcompute import mlcompute
mlcompute.set_mlc_device(device_name='gpu')(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')
])
modelpile(loss='sparse_categorical_crossentropy',optimizer=tf.keras.optimizers.Adam(0.001),metrics=['accuracy'],
)start = time.time()model.fit(ds_train,epochs=10,# validation_steps=1,# steps_per_epoch=469,# validation_data=ds_test
)delta = (time.time() - start)
elapsed = str(timedelta(seconds=delta))
print('Elapsed Time: {}'.format(elapsed))

更多推荐

傻瓜版M1配置Tensorflow

本文发布于:2024-03-07 23:44:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1719259.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:傻瓜   Tensorflow

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!