2021年5月

安装

pip3 install onnxruntime --user 会报错找不到对应的版本。 python3 -m pip install --upgrade pip 更新 pip,结果报错 Permission denied: '/usr/bin/pip'。 python3 -m pip install --upgrade pip --user 成功更新 pip。 pip3 install onnxruntime --user 安装 onnxruntime.

使用

python3 import onnxruntime 报错 Illegal instruction (core dumped)。 gdb python3 r import onnxruntime 报错

Program received signal SIGILL, Illegal instruction.
0x0000007fa8ca5f54 in gotoblas_dynamic_init ()
   from /home/openailab/.local/lib/python3.6/site-packages/numpy/core/../../numpy.libs/libopenblasp-r0-32ff4d91.3.13.so

解决方法, export OPENBLAS_CORETYPE=ARMV8 然后再使用 python3 就可以了。问题就是 openblasp 在 cpu 检测的地方除了问题,所以明确告诉它 cpu 类型就可以了。

参考:

https://github.com/opencv/opencv-python/issues/485
https://github.com/numpy/numpy/issues/18131

在没有网络的情况下非常适合从一个已经安装包的电脑上拷贝包到另一个没有安装包的电脑上。 1、进入第三方库安装的路径的文件夹。\site-packages 2、找到需要的包复制即可。注意一个库的包有两个文件,要同时复制。 3、将包移动到另一台电脑上的\site-packages 粘贴即可使用。

注意: 有些需要编译的包,可能会多一个编译后的 so 的库文件。这个也要打包进去。

参考:

https://blog.csdn.net/m0_38039437/article/details/101779197

增加虚拟内存

linux 除了可以把单独的分区作为虚拟内存以外,还可以使用文件作为虚拟内存。

free -m

mkdir swap

dd if=/dev/zero of=/home/openailab/swap/swapfile bs=100M count=5

mkswap /home/openailab/swap/swapfile

sudo swapon /home/openailab/swap/swapfile

注意: dd 的时候,如果物理内存不够大的话, bs 就设置小一点, count 设置大一点即可,最后的大小是 bs * count。如果 bs 设置的大,会提示错误: dd: memory exhausted by input buffer of size

停用虚拟内存 swapoff -v swapfile

参考:

https://blog.csdn.net/weixin_44422604/article/details/107228847
https://www.cnblogs.com/gouge/p/7770793.html
https://blog.csdn.net/qq_29257691/article/details/100096691
https://www.jb51.net/os/RedHat/534647.html

增加 tmp 空间

有些时候 /tmp 的剩余空间不够,也会导致编译失败,解决方法也很简单,重新指定 tmp 目录即可。

mkdir tmp

export TMPDIR=/home/openailab/tmp

参考:

https://www.cnblogs.com/rainsoul/p/8716201.html
https://blog.csdn.net/bi_hu_man_wu/article/details/61416306
https://blog.csdn.net/qq_34138003/article/details/109390134?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.vipsorttest&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.vipsorttest

face_recognition 安装需要的资源

在 310 上虚拟内存开始的时候,只增加了 500M,结果报错,后来增加了 1500M,编译的时候,观察了一下,高达 87%,tmp 空间也不够了,需要指定 tmp 文件夹。

主要方法

  1. 基于知识的检测方法:检测器官特征和器官之间的几何关系。主要利用先验知识将人脸看作器官特征的组合,根据眼睛、眉毛、嘴巴、鼻子等器官的特征以及相互之间的几何位置关系来检测人脸。 主要的检测方法:模板匹配,人脸特征,形状与边缘,纹理特征,颜色特征。

  2. 基于统计的检测方法:像素相似性度量。将人脸看作一个整体的模式——二维像素矩阵,从统计的观点通过大量人脸图像样本构造人脸模式空间,根据相似度量来判断人脸是否存在。 主要的检测方法:成分分析与特征脸,神经网络方法,支持向量机,隐马尔可夫模型,Adaboost算法。

- 阅读剩余部分 -

报名了1对1的私教,学习游泳,记录下相应的学习过程,以便于以后的复习。

第一节课

主要是潜水和腿部。其中的要点是:

  • 抓着池边,两手伸直,吸气,头埋到水里,脚并拢,然后飘起来
  • 要飘的好,头要埋下去,收下巴,注意力放到池底。人就像跷跷板,前面压下去,腿部才能飘起来。
  • 肩膀需要松,这样肩胛骨向后并拢,胸部就可以下沉,腿部也容易起来。
  • 双手并拢向前,手臂在耳朵后面。

第二节课

主要是联系腿部。其中的要点是:

  • 收腿时,核心需要收紧,腰要用点力,不要塌腰
  • 只有蹬腿时,脚尖翘起来,用脚根部蹬水
  • 蹬腿的力气小一些,力气主要花在夹腿上,夹腿的过程才是推进的主力。
  • 夹腿要双脚并拢

第三节课

主要是学习用手划水。其中的要点是:

  • 划水时,掌心向外,掌心和手肘的夹角小于 180 度
  • 划水时,肘部需要高于手部
  • 划水可以慢一点,手合起来之后,前冲需要快些。
  • 手前冲的过程对应于收腿,手比腿快半拍
  • 夹腿之后,飘一会。整个过程是 手 -> 腿 -> 飘,然后循环。
  • 练习鼻子出气,注意鼻子出气的过程不要断断续续,否则在断的时候,非常容易进水。

第四节课

主要学习换气。其中要点是:

  • 划水时,速度慢一点,头早一点抬起来,吸气之后,头快速下去,手迅速向前
  • 鼻子和水刚离开水面的时候,需要继续向外吹气,然后才能用嘴吸气,否则可能把鼻子里面剩余的水吸进去
  • 如果感觉漂浮状态不对劲,可以一次呼吸,一次划水,两次蹬腿。

第五节课

主要还是练习换气

第六节课

还是换气,其中要点是

  • 如果要防止游泳身体逐渐和水面角度增大,那么需要上半身压住,压上半身有几个办法
    1. 双手伸直,夹在耳朵后面
    2. 挺胸,肩甲骨向中间收缩,这样可以让身体比肩膀的平面低一些。
    3. 收下巴,头顶对着前方
    4. 挺胸收腹
  • 蹬腿夹腿之后,前进一段距离后,随着鼻孔出气,上半身在水里面会向水上面飘,当感觉飘到水面的时候,再开始划手出水面换气。
  • 其实主要还是漂浮和蹬腿的基础不牢固,可以通过憋气,只用腿前进的方法来感觉身体的漂浮状态,熟练之后,再加上划手,多练,有感觉之后,再加上呼吸才行。