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
MLCTrainingorMLCInferencegraph. This key is used to retrieve the graph and run a backward pass or an optimizer update.
用于关联张量缓冲区以构建MLCTrainingorMLCInference图的键。此键用于检索图形并运行向后传递或优化器更新。 - 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、调度程序、图表、数据编辑器和报表等)。 在这篇文章中,我们将介…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...
