标签: Mac

在pyenv环境下安装支持Mac M1芯片的TensorFlow

从TensorFlow v2.5开始,可以通过tensorflow-metal PluggableDevice使用Mac M1芯片的GPU加速训练。

一般情况下,只要按照苹果“Getting Started with tensorflow-metal PluggableDevice”文档中的步骤安装即可,但我的M1芯片MacBook Air中安装了pyenv,pyenv 是一个 python 版本管理工具,可以方便的在工作环境中安装、管理和切换不同版本的 python,所以我尝试在使用pyenv的情况下,安装TensorFlow。

系统要求,macOS 12.0+,需要先安装好Xcode Command Line Tools,安装命令

xcode-select --install

pyenv的安装和配置请参考网络教程,通过命令

pyenv install --list

可以列出所有可以安装的 python 版本,也会包含anaconda、pypy等不同的版本。

接下来安装Miniforge,这是由于Anaconda 无法在 M1 上运行, Miniforge 是用来替代它的。执行命令

pyenv install miniforge3

会安装最新版本的Miniforge3-MacOSX-arm64,使用pyenv versions命令,可以列出所有被 pyenv 管理的 python 版本。

通过pyenv命令,设置当前 shell 所使用的 python 版本为miniforge3

pyenv shell miniforge3

使用conda创建名为“tensorflow”虚拟环境,并激活,这里使用的python版本为3.9.5(TensorFlow所需)

conda create -n tensorflow python=3.9.5
conda activate tensorflow

安装TensorFlow dependencies

conda install -c apple tensorflow-deps

如果是升级安装新版本的TensorFlow,建议使用

# 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 tensorflow

安装TensorFlow

python -m pip install tensorflow-macos

安装tensorflow-metal plugin

python -m pip install tensorflow-metal

至此,TensorFlow就安装成功了,执行

conda deactivate
pyenv shell --unset

可以关闭conda虚拟环境,取消设置当前 shell 的 python 版本。

在PyCharm里使用安装在pyenv里的TensorFlow,步骤如下:

在PayCharm里新建项目

选择“Previously configured interpreter”,并点击后面的 “…” 按钮,弹出“Add Python Interpreter”窗口

选择左侧的“Conda Environment”,然后点击“Interpreter”下拉框后面的“…”按钮,弹出“Select Python Interpreter”窗口

选择miniforge3下“tensorflow”这个虚拟环境下的python文件地址,点击“OK”

在“Add Python Interpreter”窗口中,可以看到“Interpreter”已选中我们刚才所选的Python文件地址,同时选中“Make available to all projects”,也就是这个Interpreter可以被所有项目使用,点击“OK”

在“New Project”的窗口中,即可以选择我们刚才创建的“Interpreter”,点击“Create”,项目创建成功。

在main.py中测试一下TensorFlow

执行结果

我们安装的TensorFlow版本是2.7.0。

老婆家的故事

上次说了外公的故事,这次说说我老婆家的故事,确切的说是我老婆爷爷奶奶的故事,我老婆的爷爷家是地主,他们家现在那个村庄的地在解放前都是他们家的,现在还有些邻居是以前给他们家打长工的,不过我老婆的爷爷算是开明地主,后来还加入了共产党,不过也就是这个身份,当时差点丢了性命,据说被国民党抓了,本来都要枪毙了,子弹是个臭子儿,侥幸逃脱,具体啥情况我也没了解清楚,不过确实很惊险。老婆的奶奶是大家闺秀,有钱人家的小姐,陪嫁中有一张大床,据说当时就值几十个大洋,后来日本人来了,老婆爷爷奶奶的家产全被掠夺光了,据说当时拉了好几卡车,所以我对老婆说,和日本人是家仇国恨,要是没有小日本,你奶奶说不定还能给你留些好东西呢。老婆的爷爷在几年前已经去世了,奶奶健在,身体很好,我说奶奶活到100岁肯定没问题,他们都是历史的见证者,真心希望老婆的奶奶身体健康,长命百岁。

—分割线—

今天在写Objective-C时候,解析接口返回的Json数据时出现了类型转换错误,具体就是字符串转整型数字出现错误,我仔细看了一下,是PHP接口返回的Json数据中数字型的数据,被加上了双引号,解决方法是在json_encode后面的参数设置为JSON_NUMERIC_CHECK,比如json_encode($jsonmsg, JSON_NUMERIC_CHECK);

修改之后运行出现错误,我查了一下,原来JSON_NUMERIC_CHECK这个参数是在PHP5.3.3加上的,而我用的Mac版的XAMPP集成环境中,PHP只到5.3.1,看来要升级,后来发现Mac版的XAMPP没有新版了,只能使用另一个集成环境MAMP,它提供了Mac环境下的Apache、Mysql、PHP的集成环境,我已经安装的MAMP里PHP版本为5.3.14,应该没问题,我直接修改MAMP目录下Apache的配置文件,增加虚拟目录(Alias),但修改之后重启MAMP就是不生效,非常奇怪,我搜了半天,也没发现是什么问题,后来发现在MAMP的菜单里,File->Edit Template->Apache->httpd.conf,编辑httpd.conf,之后重启MAMP终于好了。

—分割线—

欢迎订阅我的微信公共帐号:“Laoer杂谈”,搜索微信号:laoertalk,或扫描页面右侧的二维码
新浪微博:@laoer
Twitter:@laoer

公共交通

今天早上地铁1号线是真够挤的,其实以前,我从未觉得上海地铁有多挤,以前上班,老婆把我载到2号线静安寺站,我从静安寺坐到浦东张江,基本上我不会觉得地铁车厢里挤,就是有时候人多,到了陆家嘴,也会下去一大批,车厢里基本上就空了,所以我觉得坐地铁还挺舒服,但去年下半年,搬家到1号线沿线,乘1号线转2号线,1号线真是挤啊,人民广场之前都是上的多下的少,车厢就像沙丁鱼罐头。其实1号线不算是最挤的,上海地铁里6号线、8号线的拥挤程度比1号线还要高。

上海的公共交通总体上来说还是不错的,轨道交通运营里程全国第一,而且实行机动车牌照拍卖制度,上海的机动车保有量在国内大城市里算是低的,比起北京动不动就堵死在路上,上海已经算是好多了,但我仍然觉得上海的公共交通仍有不足,在轨道交通方面,首先是高峰时间运力还是不足(不过据说很多线路的运力已经饱和了,是人实在太多了),其次就是地铁结束运营的时间太早了,虽然1、2号等线路能到晚上11年,但还是会有很多人路程比较远,或是工作、娱乐等事情赶不上末班车,所以我觉得地铁主要线路是应该通宵运营的。公共交通一定要公众感觉到方便、舒适,如果大家觉得公共交通不方便,还是选择私家车出行,那城市交通拥堵、环境等问题是无法解决的。

—分割线—

Mac下有一款非常好的SVN客户端软件–Cornerstone,但是这个软件实在是有点贵,一个单用户license要$59,实在是承受不起,它有14天的免费试用期,要想一直试用,就要在免费期快到时,重置一下,则又开始14天的免费试用期了,具体方法是进入终端,在~/Library/Preferences/ByHost/下,找到一个.GlobalPreferences开头的plist文件,用工具软件打开这个文件,比如PlistEdit,但如果你装了Xcode,则用Xcode打开plist文件更好编辑,在终端输入命令

open .GlobalPreferences.XXXXXX.plist

打开后可以看到,有com.zennaware.Cornerstone开始的这行,删除这行,保存后重新打开Cornerstone,试用期又重头计算了。

—分割线—

今日调查《打车软件调查》,欢迎各位参与,结果下次公布。

欢迎订阅我的微信公共帐号:“Laoer杂谈”,搜索微信号:laoertalk,或扫描页面右侧的二维码
新浪微博:@laoer
Twitter:@laoer

竞购搜狗,三国演义?

这两天360、百度、腾讯竞购搜狗的新闻突然冒了出来,不论是否靠谱,也确实是非常吸引眼球,这3家都有收购搜狗的理由,从业务和产品线重合度来说,360与搜狗最接近,都有搜索和浏览器,无论从资本层面还是实际产品业务整合都可以占领更多的市场份额,可以在搜索上与百度抗衡,对于百度来说,自从360出了搜索,就对自身产生了不小的威胁,如果360和搜狗结合成功,自有的搜索市场就会继续被蚕食,从这个角度,百度不希望搜狗被360收购,最后是腾讯,这个360的死敌,态度上应该是只要360赞成的他都反对,这个事情上一定要搅局,腾讯的搜索已经死了,似乎拿了搜狗搜索也没用,但搜狗的浏览器和输入法还是不可忽视的,腾讯在桌面客户端软件可以做到占有率第一,而且互联网“得入口者得天下”,凭借搜狗浏览器和输入法这两大入口,腾讯也可以玩出很多花样了。

搜狗现在是皇帝的女儿不愁嫁,可以坐地起价了,如果只想变现,卖给谁都会是一个不错的买卖,但我们不知道张朝阳和王小川的真实想法,也不知道是否有更深层的布局,只有拭目以待了。

—分割线—

谈到搜狗,正好说说Mac下的中文输入法,首先Mac自带的中文输入法很难用,之前有3个比较好的三方输入法,分别是QIM、sunpinyin和FIT,QIM是付费的,做的确实不错,功能强大,我之前一直用QIM,后来也装过FIT,但感觉不如QIM,后来FIT和sunpinyin合并了,但我也没有再用过,再到后来搜狗、腾讯、百度都出了Mac下的输入法,而QIM在Mac升级到10.7之后出了不少问题,QIM2.0宣布免费,但是毕竟是一个人在做,相对搜狗、腾讯、百度这样大公司背景来说,有点势单力薄。搜狗、腾讯、百度的Mac输入法我都用了,现在用搜狗输入法稍多一些,就在昨天搜狗输入法Mac版发布了2.3版,我正在试用,腾讯的QQ输入法最近的版本是2.6,今年2月发布的,但我用的比较少,百度输入法Mac版,在它发布之后我也试用了一段,但有一次把我的机子搞死机了,就不敢用了,4月24发布了3.0版,我这才又升级并再次尝试一下如何。另外不得不说一款开源的输入法,名字叫鼠须管,名字很怪吧,这款输入法最大的特色是速度快,就是配置比较麻烦,可改进的空间很大,有兴趣的同学可以尝试一下,https://code.google.com/p/rimeime/

—分割线—

上次调查《收购搜狗》的调查结果如下

你认为下面哪家企业最有可能竞购搜狗成功
360(61.5%)
百度(23.1%)
腾讯(15.4%)

看来大部分人认为360竞购搜狗成功的可能行最大。

昨天一篇硕士博士争做城管的新闻引人注意,所以今天的调查就是针对这个话题,《如何看待博士硕士争做城管》,欢迎各位参与,结果下次公布。

欢迎订阅我的微信公共帐号:“Laoer杂谈”,搜索微信号:laoertalk,或扫描页面右侧的二维码
新浪微博:@laoer
Twitter:@laoer

猕猴桃的功效

猕猴桃是一种营养价值很高的水果,但以前很少吃,去年下半年开始老婆让宝宝每天吃一个猕猴桃,吃了这么一段时间以来,感觉宝宝的抵抗力明显提高了不少,基本没有生病,一点小感冒咳嗽也很快就过去了,看来猕猴桃的功效还是有的,后来我们一家每人每天都吃一个猕猴桃。去年10.1的时候去逛麦德龙,Zespri(佳沛)的黄金奇异果促销,买了一箱回来,金果的口感好,宝宝特别爱吃,不过后来去买就没有了,连绿果也没有了,后来买了很多其他牌子的猕猴桃,甜度和口感都不如Zespri的,有的非常酸,到今年5.1假期的时候再去买的麦德龙,Zespri的绿果已经上市了。强烈建议每天吃一个猕猴桃,特别是给孩子每天吃一个,天然的营养。

【来自百度百科】
猕猴桃含有丰富的维生素C、A、E以及钾、镁、纤维素之外,还含有其他水果比较少见的营养成分——叶酸、胡萝卜素、钙、黄体素、氨基酸、天然肌醇。猕猴桃的别名又称为奇异果、超级水果,它的含钙量是葡萄柚的2.6倍、苹果的17倍、香蕉的4倍,维生素C的含量是柳橙的2倍。因此,它的营养价值远超过其他水果。
猕猴桃含有丰富的维生素C,可强化免疫系统,促进伤口愈合和对铁质的吸收;它所富含的肌醇及氨基酸,可抑制抑郁症,补充脑力所消耗的营养;它的低钠高钾的完美比例,可补充熬夜加班所失去的体力,并且对维持心血管健康具有良好效果。
世界上消费量最大的前26种水果中,猕猴桃最为丰富全面。猕猴桃果实中的Vc、Mg及微量元素含量最高。在前三位低钠高钾水果中,猕猴桃由于较香蕉及柑桔含有更多的钾而位居榜首。
猕猴桃的Vc量及食用纤维素含量达到了优秀标准,同时,猕猴桃中的Ve及Vk含量被定为优良,猕猴桃脂肪含量低且无胆固醇。与其它水果不同的是猕猴桃含有宽广的营养成分,大多数水果富含一、两种营养成分,但是每个猕猴桃可提供8%DV叶酸,8%DV铜,8%泛酸,6%DV钙和鲜,4%DV铁和维生素B6,2%DV磷和Va以及其它维生素和矿物质。

—分割线—

最近几天写代码,在Mac的Intellij IDEA下无法输入中文,换了几种输入法、重启IDEA都不行,后来搜索了一下,找到了一个方法,我用的Intellij IDEA是12的版本,在/Applications/IntelliJ IDEA.app/bin/下找到idea.vmoptions文件,打开加入一行

-J-Djava.awt.im.style=on-the-spot

保存后,重新打开IDEA,切换到中文输入法,还是不行,再试一下,我关掉IDEA,先切换到中文输入法,再打开IDEA就好了,这个方法同样适用于Mac版的PhpStorm。

—分割线—

调查还是上次的那个《关于饮用水》,欢迎各位参与,结果下次公布。

欢迎订阅我的微信公共帐号:“Laoer杂谈”,搜索微信号:laoertalk,或扫描页面右侧的二维码
新浪微博:@laoer
Twitter:@laoer

给MacBook Pro更换SSD(固态硬盘)

SSD(固态硬盘)这2年发展比较快,已应用到了现实产品中,不再是试验产品了,而我的MacBook Pro是2010年中的,也感觉到了硬盘的吃力,所以打算把机械硬盘更换为SSD。

要更换SSD确实需要做不少准备,自己动手更换硬件,还是需要先学习一下,网上有不少给MacBook Pro更换SSD的文章,包括更换SSD的具体步骤,我搜到了一个视频,是由科技评论人@王自如TechMessager制作的,录制了更换SSD的详细步骤,是非常好的参照。

更换SSD还是需要一些工具的,十字螺丝刀家里就有,一个比较特殊的T6口螺丝刀需要购买,一次到家乐福购物,在下面的小摊上正好看到有这样的整套工具,25块就顺便买了一套,Mac OS Lion的安装盘也需要一个,参照网上教程,制作了一个U盘启动盘,同时老硬盘里的完整系统、软件还是需要能方便的恢复,所以做了Time Machine备份。

这些准备都做好,剩下一个关键问题就是买何种SSD,最开始我想买镁光M4的,后来看到一篇文章说苹果可能对新的MacBook Pro配置三星830系列的SSD,所以我的目标转向了三星830系的SSD,容量上,我现在的硬盘是500G,但500G的SSD实在太贵了,要将近5000块,够买个iPhone4S的了,而且我现在使用的硬盘容量也就在150G左右,所以还是买256G的SSD吧,多了不用也是浪费,昨天终于下手,在京东上定了一个,价格2199,在淘宝上有便宜的,但担心质量与真假,还是选择了京东,放心点。

具体说下三星830系的这款SSD,我买的型号是MZ-7PC256B/WW Basic Kit,是基本型的,还有其他型的,其实硬盘都一样,就是配件不同,比如针对台式机的有托架和线,这款SSD是7mm的,而原配的机械硬盘是9.5mm的,开始我也怀疑厚度不同,能不能安装,经过实践,我明确的告诉大家,7mm的SSD是没有问题的,还有我这款2010年中的MacBook Pro的硬盘接口是SATA 2的,而苹果配的这块日立的硬盘,竟然是SATA一代的,苹果有些不厚道啊,这款三星SSD是SATA 3的,能向下兼容,但只能跑SATA 2的速度了。

SSD到货,就动手安装了,参考视频教程,拆后盖,注意螺丝顺序,拆硬盘,换硬盘,装后盖,一切非常顺利,插上U盘启动盘,和Time Machine移动硬盘,启动时按option键,进入Mac OS安装界面,我选择从Time Machine恢复,恢复的时间很长,估计有2个多小时,完成之后启动,进入系统果然快了不少,继续优化,安装Trim Enabler工具,开启Trim支持,之后需要重启,重启后再看系统信息里Trim是否开启,我这里没有问题,Trim显示开启了,由于更换了硬盘和恢复了系统,所有mdWorker和mds的进程会持续占用CPU一段时间,主要是重建索引,至此MacBook Pro更换SSD完毕,用AJASystemTest工具测试硬盘读写速度,可达200M/秒,开机菊花基本在2圈半,打开程序的速度明显提高,SSD果真是利器啊。