傻瓜版M1配置Tensorflow-超简单近乎一键完成
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了傻瓜版M1配置Tensorflow-超简单近乎一键完成,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3823字,纯文字阅读大概需要6分钟。
内容图文
前文《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 https://github.com/apple/tensorflow_macos/releases/download/v0.1alpha3/tensorflow_macos-0.1a3-cp38-cp38-macosx_11_0_arm64.whl https://github.com/apple/tensorflow_macos/releases/download/v0.1alpha3/tensorflow_addons_macos-0.1a3-cp38-cp38-macosx_11_0_arm64.whl
安装完成后,可以进入 ipython
测试以下安装包是否已经成功安装。(import tensorflow的时候,可能有点慢,一般等待以下即可)
ipython
In [1]: import tensorflow
In [2]: tensorflow.__version__
Out[2]: '2.4.0-rc0'
这样就完成了 M1 的 tensorflow 配置了。如果手上没有现成的 tensorflow 项目,可以使用文末提供的代码跑一下测试。
小结
使用本文的方法,几乎是一键即可完成安装配置,耗时和步骤都相对于之前有很大的优化。希望本文对你有用。如果你觉得文章对你用,记得关注收藏。你的关注和收藏是继续更新的动力哦。
【附】测试代码
下载代码,运行即可,运行前,请先安装依赖:
pip install tensorflow-datasets==2.1.0
python cnn_benchmark.py
代码:
import tensorflow.compat.v2 as tf
import tensorflow_datasets as tfds
import time
from datetime import timedelta
tf.enable_v2_behavior()
from tensorflow.python.framework.ops import disable_eager_execution
disable_eager_execution()
from tensorflow.python.compiler.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., label
batch_size = 128
ds_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'],
)
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-超简单近乎一键完成全部内容,希望文章能够帮你解决傻瓜版M1配置Tensorflow-超简单近乎一键完成所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。