Mac上安装tensorflow介绍留存
此预版本为 macOS 11.0+ 提供了硬件加速的 TensorFlow 和 TensorFlow 插件。M1 Mac 和基于 Intel 的 Mac 通过 Apple 的 ML 计算框架支持本机硬件加速。
- TensorFlow r2.4rc0
- TensorFlow Addons 0.11.2
TensorFlow 插件 0.11.2
REQUIREMENTS 要求
- macOS 11.0+
- Python 3.8 (required to be downloaded from Xcode Command Line Tools for M1 Macs).
Python 3.8(需要从适用于 M1 Mac 的 Xcode 命令行工具下载)。
INSTALLATION 安装
An archive containing Python packages and an installation script can be downloaded from the releases.
可以从发行版下载包含 Python 包和安装脚本的存档。
- To quickly try this out, copy and paste the following into Terminal:
若要快速尝试此操作,请将以下内容拷贝并粘贴到“终端”中:
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/apple/tensorflow_macos/master/scripts/download_and_install.sh)"This will verify your system, ask you for confirmation, then create a virtual environment with TensorFlow for macOS installed.
这将验证您的系统,要求您确认,然后创建一个安装了 TensorFlow for macOS 的虚拟环境。Alternatively, download the archive file from the releases. The archive contains an installation script, accelerated versions of TensorFlow, TensorFlow Addons, and needed dependencies.
或者,从发行版下载存档文件。该存档包含安装脚本、TensorFlow 加速版本、TensorFlow 插件和所需的依赖项。
% curl -fLO https://github.com/apple/tensorflow_macos/releases/download/v0.1alpha2/tensorflow_macos-${VERSION}.tar.gz % tar xvzf tensorflow_macos-${VERSION}.tar % cd tensorflow_macos % ./install_venv.sh --prompt
Installation on Conda 在 Conda 上安装
This pre-release version supports installation and testing using the Python from Xcode Command Line Tools. See #153 for more information on installation in a Conda environment.
此预发布版本支持使用 Xcode 命令行工具中的 Python 进行安装和测试。有关在 Conda 环境中安装的更多信息,请参见 #153。
Notes 笔记
For M1 Macs, the following packages are currently unavailable:
对于 M1 Mac,以下软件包目前不可用:
- SciPy and dependent packages
SciPy 和依赖包 - Server/Client TensorBoard packages
服务器/客户端 TensorBoard 软件包
When installing pip packages in a virtual environment, you may need to specify --target
as follows:
在虚拟环境中安装 pip 包时,可能需要指定 --target
如下:
% pip install --upgrade -t "${VIRTUAL_ENV}/lib/python3.8/site-packages/" PACKAGE_NAME
ISSUES AND FEEDBACK 问题和反馈
Please submit feature requests or report issues via GitHub Issues.
请通过 GitHub 问题提交功能请求或报告问题。
ADDITIONAL INFORMATION 附加信息
Device Selection (Optional)
设备选择(可选)
It is not necessary to make any changes to your existing TensorFlow scripts to use ML Compute as a backend for TensorFlow and TensorFlow Addons.
无需对现有 TensorFlow 脚本进行任何更改,即可将 ML Compute 用作 TensorFlow 和 TensorFlow 插件的后端。
There is an optional mlcompute.set_mlc_device(device_name='any')
API for ML Compute device selection. The default value for device_name
is 'any'
, which means ML Compute will select the best available device on your system, including multiple GPUs on multi-GPU configurations. Other available options are 'cpu'
and 'gpu'
. Please note that in eager mode, ML Compute will use the CPU. For example, to choose the CPU device, you may do the following:
有一个可选 mlcompute.set_mlc_device(device_name='any')
的 API 用于 ML 计算设备选择。的 device_name
默认值为 , 'any'
这意味着 ML 计算将选择系统上的最佳可用设备,包括多 GPU 配置上的多个 GPU。其他可用选项包括 'cpu'
和 'gpu'
。请注意,在预先模式下,ML 计算将使用 CPU。例如,要选择 CPU 设备,您可以执行以下操作:
# Import mlcompute module to use the optional set_mlc_device API for device selection with ML Compute. from tensorflow.python.compiler.mlcompute import mlcompute # Select CPU device. mlcompute.set_mlc_device(device_name='cpu') # Available options are 'cpu', 'gpu', and 'any'.
Unsupported TensorFlow Features
不支持的 TensorFlow 功能
The following TensorFlow features are currently not supported in this fork:
此分支目前不支持以下 TensorFlow 功能:
- tf.vectorized_map
- Higher-order gradients 高阶梯度
- Jacobian-vector products (aka. forwardprop)
雅可比向量积(又名 forwardprop)
Logs and Debugging 日志和调试
Graph mode 图形模式
Logging provides more information about what happens when a TensorFlow model is optimized by ML Compute. Turn logging on by setting the environment variable TF_MLC_LOGGING=1
when executing the model script. The following is the list of information that is logged in graph mode:
日志记录提供了有关 ML 计算优化 TensorFlow 模型时发生的情况的更多信息。通过在执行模型脚本时设置环境变量 TF_MLC_LOGGING=1
来打开日志记录。以下是在图形模式下记录的信息列表:
- Device used by ML Compute.
ML 计算使用的设备。 - Original TensorFlow graph without ML Compute.
没有 ML 计算的原始 TensorFlow 图。 - TensorFlow graph after TensorFlow operations have been replaced with ML Compute.
TensorFlow 操作后的 TensorFlow 图已替换为 ML Compute。- Look for MLCSubgraphOp nodes in this graph. Each of these nodes replaces a TensorFlow subgraph from the original graph, encapsulating all the operations in the subgraph. This, for example, can be used to determine which operations are being optimized by ML Compute.
在此图中查找 MLCSubgraphOp 节点。这些节点中的每一个都替换了原始图中的 TensorFlow 子图,将所有操作封装在子图中。例如,这可用于确定 ML 计算正在优化哪些操作。
- Look for MLCSubgraphOp nodes in this graph. Each of these nodes replaces a TensorFlow subgraph from the original graph, encapsulating all the operations in the subgraph. This, for example, can be used to determine which operations are being optimized by ML Compute.
- Number of subgraphs using ML Compute and how many operations are included in each of these subgraphs.
使用 ML 计算的子图数,以及每个子图中包含的操作数。- Having larger subgraphs that encapsulate big portions of the original graph usually results in better performance from ML Compute. Note that for training, there will usually be at least two MLCSubgraphOp nodes (representing forward and backward/gradient subgraphs).
使用较大的子图来封装原始图形的大部分,通常可以提高 ML 计算的性能。请注意,对于训练,通常至少有两个 MLCSubgraphOp 节点(表示前向和后向/梯度子图)。
- Having larger subgraphs that encapsulate big portions of the original graph usually results in better performance from ML Compute. Note that for training, there will usually be at least two MLCSubgraphOp nodes (representing forward and backward/gradient subgraphs).
- TensorFlow subgraphs that correspond to each of the ML Compute graphs.
与每个 ML 计算图相对应的 TensorFlow 子图。
Eager mode 急切模式
Unlike graph mode, logging in eager mode is controlled by TF_CPP_MIN_VLOG_LEVEL
. The following is the list of information that is logged in eager mode:
与图形模式不同,预先模式中的日志记录由 TF_CPP_MIN_VLOG_LEVEL
控制。以下是在预先模式下记录的信息列表:
- The buffer pointer and shape of input/output tensor.
输入/输出张量的缓冲区指针和形状。 - The key for associating the tensor’s buffer to built the
MLCTraining
orMLCInference
graph. This key is used to retrieve the graph and run a backward pass or an optimizer update.
用于关联张量缓冲区以构建MLCTraining
orMLCInference
图的键。此键用于检索图形并运行向后传递或优化器更新。 - The weight tensor format.
权重张量格式。 - Caching statistics, such as insertions and deletions.
缓存统计信息,例如插入和删除。
Tips for debugging 调试提示
- Larger models being trained on the GPU may use more memory than is available, resulting in paging. If this happens, try decreasing the batch size or the number of layers.
在 GPU 上训练的较大模型可能会使用比可用内存更多的内存,从而导致分页。如果发生这种情况,请尝试减小批大小或层数。 - TensorFlow is multi-threaded, which means that different TensorFlow operations, such as
MLCSubgraphOp
, can execute concurrently. As a result, there may be overlapping logging information. To avoid this during the debugging process, set TensorFlow to execute operators sequentially by setting the number of threads to 1 (seetf.config.threading.set_inter_op_parallelism_threads
).
TensorFlow 是多线程的,这意味着不同的 TensorFlow 操作(例如MLCSubgraphOp
)可以并发执行。因此,可能存在重叠的日志记录信息。为了避免在调试过程中出现这种情况,请通过将线程数设置为 1 来将 TensorFlow 设置为按顺序执行运算符(请参阅tf.config.threading.set_inter_op_parallelism_threads
)。 - In eager mode, you may disable the conversion of any operation to ML Compute by using
TF_DISABLE_MLC_EAGER=“;Op1;Op2;...”
. The gradient op may also need to be disabled by modifying the file$PYTHONHOME/site-packages/tensorflow/python/ops/_grad.py
(this avoids TensorFlow recompilation).
在预先模式下,您可以使用TF_DISABLE_MLC_EAGER=“;Op1;Op2;...”
禁用任何操作到 ML 计算的转换。可能还需要通过修改文件$PYTHONHOME/site-packages/tensorflow/python/ops/_grad.py
来禁用梯度运算(这样可以避免 TensorFlow 重新编译)。 - To initialize allocated memory with a specific value, use
TF_MLC_ALLOCATOR_INIT_VALUE=<init-value>
.
要使用特定值初始化分配的内存,请使用TF_MLC_ALLOCATOR_INIT_VALUE=<init-value>
。 - To disable ML Compute acceleration (e.g. for debugging or results verification), set the environment variable
TF_DISABLE_MLC=1
.
要禁用 ML 计算加速(例如用于调试或结果验证),请设置 环境变量TF_DISABLE_MLC=1
。
相关文章:
Mac上安装tensorflow介绍留存
此预版本为 macOS 11.0 提供了硬件加速的 TensorFlow 和 TensorFlow 插件。M1 Mac 和基于 Intel 的 Mac 通过 Apple 的 ML 计算框架支持本机硬件加速。 TensorFlow r2.4rc0TensorFlow Addons 0.11.2 TensorFlow 插件 0.11.2 REQUIREMENTS 要求 macOS 11.0Python 3.8 (requir…...

【赠书第16期】码上行动:用ChatGPT学会Python编程
文章目录 前言 1 ChatGPT简介 2 Python编程简介 3 使用ChatGPT学习Python编程 4 如何使用ChatGPT学习Python编程 5 推荐图书 6 粉丝福利 前言 随着人工智能技术的不断发展,聊天机器人已经成为我们日常生活和工作中不可或缺的一部分。其中,ChatGP…...
LeetCode 每日一题 2024/1/1-2024/1/7
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 1/1 1599. 经营摩天轮的最大利润1/2 466. 统计重复个数1/3 2487. 从链表中移除节点1/4 2397. 被列覆盖的最多行数1/5 1944. 队列中可以看到的人数1/6 2807. 在链表中插入最…...

7+单细胞+空转+实验验证,如何根据内容开展相关经验给你启发
导语 今天给同学们分享一篇生信文章“CD8 tissue-resident memory T cells induce oral lichen planus erosion via cytokine network”,这篇文章发表在Elife期刊上,影响因子为7.7。 结果解读: 单细胞RNA测序揭示了具有不同临床亚型的OLP的细…...

Verifiable Credentials可验证证书 2023 终极指南
1. 引言 Dock公司为去中心化数字身份领域的先驱者,其自2017年以来,已知专注于构建前沿的可验证证书(Verifiable Credentials)技术。本文将阐述何为电子证书、电子证书工作原理、以及其对组合和个人的重要性。 伪造实物证书和数字…...
R语言【sp】——SpatialPoints():创建类SpatialPoints或SpatialPointsDataFrame的对象
Package sp version 1.5-0 Description 从坐标或数据帧的坐标创建类 SpatialPoints-class 或 SpatialPointsDataFrame-class 的对象。 Usage SpatialPoints(coords, proj4stringCRS(as.character(NA)), bbox NULL)SpatialPointsDataFrame(coords, data, coords.nrs numeric…...
【Verilog】期末复习——简要说明仿真时阻塞赋值和非阻塞赋值的区别。always语句和initial语句的关键区别是什么?能否相互嵌套?
系列文章 数值(整数,实数,字符串)与数据类型(wire、reg、mem、parameter) 运算符 数据流建模 行为级建模 结构化建模 组合电路的设计和时序电路的设计 有限状态机的定义和分类 期末复习——数字逻辑电路分…...
分享一个idea插件MyBatisX的Bug
分享一个idea插件MyBatisX的Bug The plugin com.baomidou.plugin.idea. mybatisx failed to save settings and has been disabled. Please restart IntelliJ IDEAjava.lang.Throwableat com.intellij.openapi.project.DumbServiceImpl.queueTask(DumbServiceImpl.java:293)at…...

Linux网络
一、Linux网络 查看基础的网络配置 网关、路由:route —n 网关、路由route —nIP地址ifconfig ip aDNS 服务器cat /etc/resolv.conf主机名hostname网络连接状态ss、netstat、syn—sent域名解析nalookup、host 1.1 ifconfig 网络接口配置 临时性修改网卡 …...

Copilot 插件的使用介绍:如何快速上手
GitHub Copilot 本文主要介绍如何通过脚本工具激活 GitHub Copilot 插件,提供安装及激活图文教程,大家按下面操作即可激活GitHub Copilot插件,免费使用Ai编码工具 一、GitHub Copilot 介绍 GitHub Copilot 是由 GitHub 和 OpenAI 共同开发的…...

kubesphere和k8s的使用分享
文章目录 什么是kubernetesKubernetes的部分核心概念互式可视化管理平台与kubernetes的关系市面是常见的kubernetes管理平台 什么是kubesphereKubesphere默认安装的组件Kubesphere涉及的服务组件kubesphere的安装Kubesphere相关的内容 什么是kubernetes 就在这场因“容器”而起…...
macos m1如何安装指定版本的redis
安装指定版本的Redis在macOS M1上可以通过Homebrew进行操作。Homebrew是一个在macOS上管理软件包的常用工具。 要安装特定版本的Redis,请首先确保已经安装了Homebrew。然后,可以通过以下步骤安装指定版本的Redis: 步骤: 查找可用…...

python 多线程 守护线程
daemon线程:守护线程,优先级别最低,一般为其它线程提供服务。通常,daemon线程体是一个无限循环。如果所有的非daemon线程(主线程以及子线程)都结束了,daemon线程自动就会终止。t.daemon 属性,设…...

以unity技术开发视角对android权限的讲解
目录 前言 Android权限分类 普通权限 普通权限定义 普通权限有哪些 危险权限 危险权限的定义 危险权限有哪些 动态申请权限实例 申请单个权限实例 第一步:在清单文件中声明权限 第二步:在代码中进行动态申请权限 申请多个权限实例 第一步&am…...

910b上跑Chatglm3-6b进行流式输出【pytorch框架】
文章目录 准备阶段避坑阶段添加代码结果展示 准备阶段 配套软件包Ascend-cann-toolkit和Ascend-cann-nnae适配昇腾的Pytorch适配昇腾的Torchvision Adapter下载ChatGLM3代码下载chatglm3-6b模型,或在modelscope里下载 避坑阶段 每个人的服务器都不一样࿰…...
2024年江苏省职业院校技能大赛高职学生组软件测试—任务五接口测试题目
2024年江苏省职业院校技能大赛高职学生组软件测试任务五 接口测试 任务要求 题目1:登录接口脚本编写和执行测试。 1、登录接口描述如下: 接口功能:提供用户登录功能处理,根据传入的用户名和密码判断登录状态。 接口地址&…...

螺旋数字矩阵 - 华为OD统一考试
OD统一考试(C卷) 分值: 100分 题解: Java / Python / C 题目描述 疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法: 给出数字个数n和行数m (0 < n < 999,…...

更改ERPNEXT源
更改ERPNEXT源 一, 更改源 针对已经安装了erpnext的,需要更改源的情况: 1, 更改为官方默认源, 进入frapp-bench的目录, 然后执行: bench remote-reset-url frappe //重设frappe的源为官方github地址。 bench remote-reset-url…...

配置基本QinQ示例
QinQ简介 定义 QinQ(802.1Q-in-802.1Q)技术是一项扩展VLAN空间的技术,通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的功能,可以使私网VLAN透传公网。由于在骨干网中传递的报文有两层802.1Q Tag&#x…...

界面控件DevExpress Blazor Grid v23.2 - 支持全新的单元格编辑模式
DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生Blazor UI组件(包括Pivot Grid、调度程序、图表、数据编辑器和报表等)。 在这篇文章中,我们将介…...

python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...

接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...