技术标签: tensorflow 深度学习 pytorch 软件工具 Python
from absl import logging
ModuleNotFoundError: No module named ‘absl’;I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:116] None of the MLIR optimization passes are enabled (registered 2); W tensorflow/core/platform/profile_utils/cpu_utils.cc:126] Failed to get CPU frequency: 0 Hz; F tensorflow/core/grappler/costs/op_level_cost_estimator.cc:710] Check failed: 0 < gflops (0 vs. 0)type: "CPU"
具体的建议就是:重新安装TensorFlow,按照官方提供的流程一步步走。既然是arm64架构,那就用支持arm64架构的TensorFlow,避免再生问题。
对于很多朋友提出,能import tensorflow,但是模型无法编译:一到model.fit就出错。
问题描述:无法在M1上使用keras进行模型编译
报错信息:
2021-09-29 12:04:50.205695: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:116] None of the MLIR optimization passes are enabled (registered 2)
2021-09-29 12:04:50.205850: W tensorflow/core/platform/profile_utils/cpu_utils.cc:126] Failed to get CPU frequency: 0 Hz
2021-09-29 12:04:50.206537: F tensorflow/core/grappler/costs/op_level_cost_estimator.cc:710] Check failed: 0 < gflops (0 vs. 0)type: "CPU"
model: "0"
num_cores: 8
environment {
key: "cpu_instruction_set"
value: "ARM NEON"
}
environment {
key: "eigen"
value: "3.3.90"
}
l1_cache_size: 16384
l2_cache_size: 524288
l3_cache_size: 524288
memory_size: 268435456
zsh: abort /Users/dan/miniforge3/envs/pytorch_env/bin/python
原因分析:
还是TensorFlow版本的问题, 使用一个支持Mac M1芯片的arm64版本的TensorFlow。具体的操作可以参考官方。
从miniforge github选择最新的ARM64版本,一路yes就行。
之后终端conda --version
或 conda info -e
检查是否成功。
进入releases选择最新的版本tensorflow_macos-0.1alpha3.tar.gz:
tensorflow_macos-0.1alpha3.tar.gz下载后,先解压会出现2个文件夹arm64和x86_64,需要cd进入arm64文件夹。
创建一个新环境tf24:
conda create --name tf24
创建后利用conda info -e
查看。
激活环境tf24,安装Python3.8.6和pandas等。
conda activate tf24
conda install -y python==3.8.6
conda install -y pandas matplotlib scikit-learn jupyterlab
如下所示arm64文件夹内的whl文件:
先强制安装除Tensorflow包以外的whl:
pip install --upgrade --no-dependencies --force numpy-1.18.5-cp38-cp38-macosx_11_0_arm64.whl grpcio-1.33.2-cp38-cp38-macosx_11_0_arm64.whl h5py-2.10.0-cp38-cp38-macosx_11_0_arm64.whl
因为安装TensorFlow有很多依赖的其他包,先安装这些依赖包。具体如下所示:
pip install absl-py astunparse flatbuffers gast google_pasta keras_preprocessing opt_einsum protobuf tensorflow_estimator termcolor typing_extensions wrapt wheel tensorboard typeguard
继续安装来自arm64文件夹的whl文件:
pip install --upgrade --force --no-dependencies tensorflow_macos-0.1a3-cp38-cp38-macosx_11_0_arm64.whl
pip install --upgrade --force --no-dependencies tensorflow_addons_macos-0.1a3-cp38-cp38-macosx_11_0_arm64.whl
至此tensorflow安装完成。
import tensorflow as tf
import time
mnist = tf.keras.datasets.mnist
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
model.summary()
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
start = time.time()
model.fit(x_train, y_train, epochs=5)
end = time.time()
model.evaluate(x_test, y_test)
print(end - start)
可以正常编译:
Python3.8 + TensorFlow2.4正常使用中,如今可在macOS12.0+上安装TensorFlow2.5或者2.6且支持3.9。2.4还是会有点小问题,建议还是上2.5。
具体参考苹果官方的方法:https://developer.apple.com/metal/tensorflow-plugin/
下载并安装Conda env:
chmod +x ~/Downloads/Miniforge3-MacOSX-arm64.sh
sh ~/Downloads/Miniforge3-MacOSX-arm64.sh
source ~/miniforge3/bin/activate
有以下2种情况:
# uninstall existing tensorflow-macos and tensorflow-metal
python -m pip uninstall tensorflow-macos
python -m pip uninstall tensorflow-metal
# Upgrade tensorflow-deps
conda install -c apple tensorflow-deps --force-reinstall
# or point to specific conda environment
conda install -c apple tensorflow-deps --force-reinstall -n my_env
如果是TensorFlow 2.5:
conda install -c apple tensorflow-deps==2.5.0
如果是TensorFlow 2.6:
conda install -c apple tensorflow-deps==2.6.0
python -m pip install tensorflow-macos
python -m pip install tensorflow-metal
欢迎各位关注我的个人公众号:HsuDan,我将分享更多自己的学习心得、避坑总结、面试经验、AI最新技术资讯。
文章浏览阅读719次。1)删除小猫角色,添加角色“Monkey”,“Ben2”和“Jordyn”,调整造型和位置,如上图所示;(4)Jordyn跳起(距离随机,y坐标的范围是-100到180),然后回到原位;(3)Ben2先跳起(距离随机,y坐标的范围是-100到180),然后回到原位;(1)正确的添加背景、角色,并且正确摆放角色的位置,造型不对扣1分。学生对编程软件的进一步综合操作能力,考查对随机数,变量,广播,(2)正确的设置变量“1号成绩”,“2号成绩”。(5)Ben2和Jordyn跳起的高度随机。..._2021年12月电子学会图形化三级编程题解析含答案:跳高比赛_电子学会跳高比赛_青少
文章浏览阅读780次。这里记录下MySQL如何通过命令行备份和还原数据库。简单的三个步骤方法很简单,可以分为三个步骤:1.打开cmd控制台(命令行)。2.输入相应命令完成备份还原操作。3.关闭cmd控制台。就和三步将大象塞进冰箱是一样的,非常简单(手动滑稽)。备份和还原的命令备份用的是mysqldump命令:mysqldump -u 用户名 -p -d 数据库名 -t 表名 > 盘符:\路径\文件名.sql这里的..._mysql命令还原数据库
文章浏览阅读2w次,点赞66次,收藏230次。简洁直观。_ros虚拟机现成的
文章浏览阅读3.6k次。JW FLV PLAYER 在线FLV播放器中文使用说明使用方法:如果你仅需要播放一个FLV文件[例如“video.flv”],那么只要把“video.flv”和压缩包内的flvplayer.swf复制到同一个目录内,然后在页面内添加程序代码wmode="transparent" dat_aspx flv
文章浏览阅读1.1k次。java的数据结构及优缺点:数据结构: 优点: 缺点:数组 插入快 查找慢,删除慢,大小固定,只能存储单一元素有序数组 比无序数组查询快 插入慢,删除慢,大小固定,只能存储单一元素栈 提供后劲先出的存储方式 存取其他项很慢队列 提供先进先出的存取方式 存取其他项很慢链表 插入快,删除快 查找慢二叉树 如果树是平衡的,则..._http调用后端接口是一个线程吗
文章浏览阅读457次,点赞6次,收藏10次。EDA(Exploratory Data Analysis)即探索性数据分析,EDA通过可视化、统计和图形化的方法,对数据集进行全面的、非形式化的初步分析,帮助分析人员了解数据的基本特征,发现数据中的规律和模式。这有助于获取对数据的直观感受和深刻理解,为后续的数据处理和建模提供基础。
文章浏览阅读667次。如果想用C#来创建mqtt的服务器进行数据交互的话,有一个常见的选择,那就是 MQTTNET那个库在最近几个版本升级的过程中,更改了一些api接口,造成了大家的困惑,所以我在hsl中也提供了mqtt的实现类,用法很简单。现在来介绍一下在Visual Studio 中的NuGet管理器中可以下载安装,也可以直接在NuGet控制台输入下面的指令安装:测试的MQTT界面如下:如果需要客户端,hsl的de..._hslcommunication mqtt
文章浏览阅读5.2w次,点赞20次,收藏21次。首先附一个官方upload的地址 http://element-cn.eleme.io/#/zh-CN/component/upload其中有上传多张和不同样式列表的例子,只是在【用户上传头像】这个例子中,在下并没有成功的使用。会出现显示不出已上传的图片无法显示缩略图,无法调整缩略图的位置。所以我不想深究,直接用【照片墙】这个例子往上怼。这个例子上上传多张的,因_element plus只上传一张图片
文章浏览阅读4.7k次。【一、项目背景】现在的听歌软件动不动就是各种付费,要下载软件才能听,当你下载了之后,你会惊奇的发现这首歌还收费,这就让一向喜欢白嫖的我感到很伤心了。不过不用担心,因为我会Python啊【二、项目准备】1、编辑器:Sublime Text 32、软件:360浏览器【三、项目目标】下载我们喜欢的音乐。【四、项目实现】1、打开酷狗音乐官网360浏览器打开酷狗音乐官网:可以看到十分清爽的画风,这也是我比较..._python爬取酷狗付费音乐
文章浏览阅读309次。coin1 - pwnable题目脚本分析题目利用二分法找出假硬币。游戏需要进行100轮,每轮得一分。游戏与服务器交互????。需要注意一点,每一轮找出并输入假硬币之后,需要再一次输入假硬币的序号,开启下一轮的游戏或获得flag。~$ nc pwnable.kr 9007 --------------------------------------------------- - ..._pwbable.kr.coin1
文章浏览阅读345次。【代码】docker GPU报错解决。_在进入docker时报错no nvidia gpu device found
文章浏览阅读517次。型号(模式)选e1000,网络选刚刚创建好的。然后进入虚拟机就可以正常联网了,发现已经独立分配了与物理网卡相同网段的ip。为创建好的虚拟机添加网络,型号这次可以选virtio。进入虚拟机,进入光驱,安装virtio-win-guest-tools,成功联网。在omv6-kvm网络中添加macvtap网络,选择刚刚添加的br0桥。Sftp上传到你创建的池路径后在Vms中添加光盘,选择这个镜像。编辑/etc/network/interfaces。激活这个网络后到VMs界面为创建好的虚拟机添加网络。_kvm怎么给windows配网关