MacOS安装Miniforge、Tensorflow、Jupyter Lab等(2024年最新)

news2024/11/20 14:29:31

大家好,我是邵奈一,一个不务正业的程序猿、正儿八经的斜杠青年。
1、世人称我为:被代码耽误的诗人、没天赋的书法家、五音不全的歌手、专业跑龙套演员、不合格的运动员…
2、这几年,我整理了很多IT技术相关的教程给大家,爱生活、爱分享。
3、如果您觉得文章有用,请收藏,转发,评论,并关注我,谢谢!
博客导航跳转(请收藏):邵奈一的技术博客导航
| 公众号 | 微信 | CSDN | 掘金 | 51CTO | 简书 | 微博 |


教程目录

  • 0x00 教程内容
  • 0x01 下载安装并配置Miniforge
        • 1. 下载并安装Miniforge
        • 2. 配置Miniforge
  • 0x02 安装Tensorflow
        • 1. 创建虚拟环境
        • 2. 安装Tensorflow
        • 3. 测试Tensorflow
  • 0x03 安装Jupyter Lab
        • 1. 安装依赖
        • 2. 测试Jupyter Lab
        • 3. 一个尝试
  • 0xFF 总结

0x00 教程内容

  1. 本教程配置

苹果电脑配置如下:

  • M1 Max
  • 系统版本13.0 (22A380)

但是我觉得问题不大,主要还是看我的教程。

  1. 安装Miniforge、Tensorflow、Jupyter Lab

我现在需要安装Anaconda,但是我这里直接使用了Miniforge替代,然后安装Tensorflow、Jupyter Lab等,除了我总结我的搭建过程,还会在文章最后附带上一些有意义的参考链接。

0x01 下载安装并配置Miniforge

1. 下载并安装Miniforge

https://github.com/conda-forge/miniforge下载 Miniforge3-MacOSX-arm64。如下图:
在这里插入图片描述

下载完后,直接在终端执行以下命令安装Miniforge:

bash Miniforge3-MacOSX-arm64.sh

其实还是比较顺利的,安装完后,Python的版本会被默认使用新安装Python版本,可以执行查看。

2. 配置Miniforge

(1)配置环境变量

接着,可以配置一下环境变量,我是配置在~/.bash_profile

export MINIFORCE_HOME=/Users/shaonaiyi/app/miniforge3
export PATH=$MINIFORCE_HOME/bin:$PATH

(2)添加国内镜像源

配置命令如下:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

查看镜像源:

conda config --show channels

如果配置正确,可以看得到刚刚配置上的镜像源。

说明:若在本文以后的配置中,有些地方网速还是慢,开启“全局模式”可解决。

conda config --set show_channel_urls yes

0x02 安装Tensorflow

1. 创建虚拟环境
# 创建名为“tf”的虚拟环境:
conda create -n tf python=3.9.7
# 激活虚拟环境:
conda activate tf

删除上述虚拟环境的命令为(此命令不需要执行):

conda remove -n tf --all
2. 安装Tensorflow

在虚拟机中执行如下命令安装:

python -m pip install tensorflow
python -m pip install tensorflow-metal

注意:新版本里第一行是 tensorflow ,不是 tensorflow-macos

3. 测试Tensorflow

安装好后,运行如下代码:

import tensorflow as tf

cifar = tf.keras.datasets.cifar100
(x_train, y_train), (x_test, y_test) = cifar.load_data()
model = tf.keras.applications.ResNet50(
    include_top=True,
    weights=None,
    input_shape=(32, 32, 3),
    classes=100,)

loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)
model.compile(optimizer="adam", loss=loss_fn, metrics=["accuracy"])
model.fit(x_train, y_train, epochs=5, batch_size=64)

最好一行一行粘贴。

如果环境没有问题,结果如下:

Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> cifar = tf.keras.datasets.cifar100
>>> (x_train, y_train), (x_test, y_test) = cifar.load_data()
Downloading data from https://www.cs.toronto.edu/~kriz/cifar-100-python.tar.gz
169001437/169001437 [==============================] - 37s 0us/step
>>> model = tf.keras.applications.ResNet50(
...     include_top=True,
...     weights=None,
...     input_shape=(32, 32, 3),
...     classes=100,)
2024-01-10 14:54:28.725324: I metal_plugin/src/device/metal_device.cc:1154] Metal device set to: Apple M1 Max
2024-01-10 14:54:28.725346: I metal_plugin/src/device/metal_device.cc:296] systemMemory: 64.00 GB
2024-01-10 14:54:28.725351: I metal_plugin/src/device/metal_device.cc:313] maxCacheSize: 24.00 GB
2024-01-10 14:54:28.725396: I tensorflow/core/common_runtime/pluggable_device/pluggable_device_factory.cc:306] Could not identify NUMA node of platform GPU ID 0, defaulting to 0. Your kernel may not have been built with NUMA support.
2024-01-10 14:54:28.725429: I tensorflow/core/common_runtime/pluggable_device/pluggable_device_factory.cc:272] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 0 MB memory) -> physical PluggableDevice (device: 0, name: METAL, pci bus id: <undefined>)
>>>
>>> loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False)
>>> model.compile(optimizer="adam", loss=loss_fn, metrics=["accuracy"])
>>> model.fit(x_train, y_train, epochs=5, batch_size=64)
Epoch 1/5
2024-01-10 14:54:31.761634: I tensorflow/core/grappler/optimizers/custom_graph_optimizer_registry.cc:117] Plugin optimizer for device_type GPU is enabled.
782/782 [==============================] - 55s 57ms/step - loss: 4.7738 - accuracy: 0.0716
Epoch 2/5
782/782 [==============================] - 41s 53ms/step - loss: 4.2306 - accuracy: 0.1250
Epoch 3/5
782/782 [==============================] - 43s 55ms/step - loss: 3.7030 - accuracy: 0.1791
Epoch 4/5
782/782 [==============================] - 42s 54ms/step - loss: 3.3660 - accuracy: 0.2270
Epoch 5/5
782/782 [==============================] - 43s 55ms/step - loss: 3.1421 - accuracy: 0.2694
<keras.src.callbacks.History object at 0x2944ad730>

0x03 安装Jupyter Lab

1. 安装依赖

安装必须的包(此处,我是在虚拟环境中执行):

conda install libjpeg
conda install -y matplotlib jupyterlab

注意: libjpeg 是 matplotlib 需要依赖的库。

执行以下命令:

pip install -U --force-reinstall charset-normalizer 

使用 pip 强制重新安装charset-normalizer包,即使它已经是最新版本。
(1) --force-reinstall : 这个选项会强制重新安装包,即使该包已经是最新的。这有时在某些情况下是有用的,例如当包的安装有问题或损坏时。
(2) -charset-normalizer 是一个用于字符编码归一化的Python库,它可以将文本转换为UTF-8格式,确保在不同编码之间的一致性。

conda install ipykernel //安装ipykernel
sudo python -m ipykernel install --name tf //在ipykernel中安装当前环境
2. 测试Jupyter Lab

装好后,就可以直接执行:

jupyter lab

就可以进入notebook目录了,记得选择刚刚Kernel=> tf ,然后执行下面代码:

from tensorflow.keras import layers
from tensorflow.keras import models
import tensorflow as tf
import time 

begin_time = time.time()

print(f"Running TensorFlow {tf.__version__} with {len(tf.config.list_physical_devices('GPU'))} GPUs recognized")

model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax'))
model.summary()

from tensorflow.keras.datasets import mnist
from tensorflow.keras.utils import to_categorical
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
train_images = train_images.reshape((60000, 28, 28, 1))
train_images = train_images.astype('float32') / 255
test_images = test_images.reshape((10000, 28, 28, 1))
test_images = test_images.astype('float32') / 255
train_labels = to_categorical(train_labels)
test_labels = to_categorical(test_labels)
model.compile(optimizer='rmsprop',
              loss='categorical_crossentropy',
              metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=5, batch_size=64)
test_loss, test_acc = model.evaluate(test_images, test_labels)
test_acc
end_time = time.time()

print('Total time: {} s'.format(int(end_time-begin_time)))

执行后,如果没有报错,则应该是这样:
在这里插入图片描述
如果弹窗报错,可能是哪一步错误了,建议重新检查或者重装。

3. 一个尝试

安装好后,发现在哪各路径执行jupyter lab,新建的项目文件就会是在哪个路径。我尝试了以下步骤,发现还是无法修改(请不要根据下面教程操作):

修改/Users/shaonaiyi/app/miniforge3/envs/tf/lib/python3.9/site-packages/notebook_shim/tests/confs/jupyter_notebook_config.py文件,实际上是你的envs/tf/路径下的文件。
然后将c.ServerApp.notebook_dir 路径进行修改即可,我的如下:

c.ServerApp.notebook_dir = '/Users/shaonaiyi/my-workspace/jupyter'

注意:我的用户名为 shaonaiyi

发现不生效,说明虚拟环境是不支持这样改的,你可以直接去修改不是虚拟环境下的 jupyter_notebook_config.py 试试。会不会有惊喜呢?!

参考链接:

  1. Mac M1芯片安装miniAnaconda、Jupyter、TensorFlow环境
  2. MacBook M1配置Pytorch
  3. 可能遇到的错误:报错:Kernel Restarting The kernel for Untitled.ipynb appears to have died. It will restart automatical

0xFF 总结

  1. 我尝试过去限定TensorFlow的版本,比如设置成2.10,但是发现在装metal的时候报错了,因为找不到…所以,我最后干脆不加上版本,直接全部默认装就可以了。
  2. 关注我,学习更多大数据与人工智能知识。

邵奈一 原创不易,如转载请标明出处,教育是一生的事业。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1375230.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

查看Linux磁盘空间

(1)、该命令会列出当前系统所有挂载的文件系统以及它们的使用情况&#xff0c;包括总容量、已用空间、可用空间、使用百分比等信息 df -h如果查看某一个文件夹的,可以 df -h folderName (2)、计算指定目录下所有文件和子目录所占用的磁盘空间大小&#xff0c;并以人类可读的格…

创建型模式 | 工厂模式

文章目录 一、简单工厂1.1、原理1.2、核心角色1.3、UML类图1.4、代码实现1.5、总结 二、工厂模式2.1、原理2.2、关键角色2.3、代码实现2.4、总结 三、抽象工厂模式3.1、原理3.2、关键角色3.3、UML类图3.4、工厂模式与抽象工厂模式的区别 前言 工厂模式是最常用的设计模式之一&a…

ROS---激光雷达的使用

ROS—激光雷达的使用 激光雷达是现今机器人尤其是无人车领域及最重要、最关键也是最常见的传感器之一&#xff0c;是机器人感知外界的一种重要手段。本文将介绍在ROS下使用激光雷达传感器&#xff0c;我们选用的激光雷达型号为思岚A1。 使用流程如下: 硬件准备&#xff1b;软…

C++——简介、Hello World、变量常量、数据类型

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

idea编译报错(Maven项目)

idea编译报错 找不到符号 第一步&#xff1a;开启注解处理器 第二步&#xff1a;清理MVN&#xff0c;package并重新编译 第三步&#xff1a;重新导入项目&#xff1a;

本地开发环境请求服务器接口跨域的问题(vue的问题)

上面的这个报错大家都不会陌生&#xff0c;报错是说没有访问权限&#xff08;跨域问题&#xff09;。本地开发项目请求服务器接口的时候&#xff0c;因为客户端的同源策略&#xff0c;导致了跨域的问题。下面先演示一个没有配置允许本地跨域的的情况&#xff1a; 可以看到&…

【亲测有效】Win11 卸载MySQL5.7以及安装MySQL8.0.35

目录 一、卸载原来本地的mysql5.7 1.mysql服务部分 1.1停止mysql服务 1.2删除mysql服务 2.卸载 MySQL程序 3.残余文件的清理 3.1删除mysql安装的目录 3.2删除mysql数据存放的目录 3.3删除mysql自定义目录 4.清理注册表 5.删除环境变量配置 二、安装mysql8.0.35 1.…

Explain详解与索引最佳实践

Mysql安装文档参考&#xff1a;https://blog.csdn.net/yougoule/article/details/56680952 Explain工具介绍 使用EXPLAIN关键字可以模拟优化器执行SQL语句&#xff0c;分析你的查询语句或是结构的性能瓶颈 在 select 语句之前增加 explain 关键字&#xff0c;MySQL 会在查询…

全网第一篇教你怎么总结多线程知识

于「全景图」&#xff0c;我之前也有一直在构建&#xff0c;可是因为知识储备不够&#xff0c;确实很难构建出来。稍微了解过并发领域知识的人都知道&#xff0c;里面的知识点、概念多而散&#xff1a;线程安全、锁、同步、异步、阻塞、非阻塞、死锁、队列(为什么并发要跟队列扯…

2024年云服务器配置推荐,看看哪家便宜?

作为多年站长使市面上大多数的云厂商的云服务器都使用过&#xff0c;很多特价云服务器都是新用户专享的&#xff0c;本文有老用户特价云服务器&#xff0c;阿腾云atengyun.com有多个网站、小程序等&#xff0c;国内头部云厂商阿里云、腾讯云、华为云、UCloud、京东云都有用过&a…

Backtrader 文档学习-Strategy with Signals

Backtrader 文档学习-Strategy with Signals backtrader可以不通过重写策略的方式触发交易&#xff0c;尽管重写策略是首选通用的方式。 下面介绍通过使用信号也是可以实现交易触发的。 1.定义signal import backtrader as btdata bt.feeds.OneOfTheFeeds(datanamemydatana…

微信公众号使用后端代码接入开发指南

1. 部署到服务器一套后端服务 要求&#xff1a;外界通过get请求可以访问到该服务&#xff0c;并且该地址只返回文本&#xff1a;hello, this is handle view&#xff0c;这就是下面这段代码的意思 这段代码的意思就是服务匹配到/wx的get请求&#xff0c;返回文本hello, this …

【UE Niagara学习笔记】07 - 火焰的热变形效果

目录 效果 步骤 一、创建热变形材质 二、添加新的发射器 2.1 设置粒子材质 2.2 设置粒子初始大小 2.3 设置粒子持续生成 三、修改材质 四、设置粒子效果 在上一篇博客&#xff08;【UE Niagara学习笔记】06 - 制作火焰喷射过程中飞舞的火星&#xff09;的基础上继续…

机器学习之特征工程

一、背景 什么是特征&#xff1f;在机器学习中,特征是一个现象的个别可测量的属性或特征。让我们观察一束阳光&#xff0c;直接看的话&#xff0c;它是白光&#xff0c;但是我们使用三菱镜&#xff0c;它就是七种颜色的光。所以&#xff0c;选取的事物的特征不同&#xff0c;我…

能赚钱的GPT Store正式上线!如何将自己的 GPT 放到商店中?

等了两个月&#xff0c;OpenAI 的 GPT Store 今日凌晨终于上线&#xff01;上线 GPT Store 的同时&#xff0c;OpenAI 同步了最新的 GPTs 数据&#xff1a;截止到1月11日&#xff0c;用户已创建300万的GPTs&#xff01; GPTs 开发者可以通过 GPTs 来获利。OpenAI 将在今年第一季…

PLECS如何下载第三方库并导入MOSFET 的xml文件,xml库路径添加方法及相关问题

1. 首先xml库的下载&#xff0c;PLECS提供了一个跳转的链接。 https://www.plexim.com/download/thermal_models 2. 下载一个库&#xff08;以最后一个Wolfspeed为例&#xff0c;属于CREE的SiC MOSFET&#xff09; 下载这个就行&#xff0c;都包含了。不信自己可以试试再下载…

java物品检验管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web 物品检验管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysq…

C++里main函数int main(int argc, char **argv)

C里main函数int main(int argc, char **argv), 这两个参数argc和argv分别是什么

免费申请eu.org域名,开启个人网站之旅

介绍 eu.org的免费域名注册服务是由OpenTLD B.V.提供的。相比于其他免费域名注册服务&#xff0c;eu.org的域名后缀更加独特。同时&#xff0c;eu.org的域名注册也比较简单&#xff0c;只需要填写一些基本信息&#xff0c;就可以获得自己的免费域名。 注册账号 点击进入登…

C#中的Abp项目发布后,将exe设置为开机自动启动

一.跳过登陆界面 1.win R,输入“regedit”进入注册表&#xff0c;点开“HKEY_LOCAL_MACHINE” 2.SOFTWARE–>Policies–>Microsoft–>Windows–>新建–>项–>Personalization,新建–>DWORD(32位&#xff09;&#xff0c;名字定位“NoLockScreen”,值设为…