算法工程与架构
文章平均质量分 92
gaussrieman123
喜欢新技术与老故事。
展开
-
从DistBelief看深度学习早期的并行化
从DistBelief看深度学习早期的并行化背景DistBelief是TensorFlow的前身,与TF的名扬天下如雷贯耳相比,DistBelief简直是不值一提,但是仔细琢磨就能发现,大部分深度学习框架的问题,在DistBelief里面就已经有了回答。其中就有今天要讨论的并行部分。一言以蔽之,深度学习,或者说机器学习,在工程上最大的难题就是满足大规模数据的要求。与摩尔定律相比,数据的爆发显然更令人惊讶,所以如何处理大规模数据,并从中学习到一个好的模型,是一个非常严肃的问题。大规模数据首先是大规模的原创 2021-01-12 17:05:23 · 1797 阅读 · 0 评论 -
gRPC c++版本安装使用实录
背景gRPC作为google全家桶之一,拥有极高的传输效率,最近想把它加入到我们云端协议中去,提供高效的传输,解决进程间通信的问题。看着很诱人,但是用起来却不是那么简单,花了一些功夫才把完整的Demo给跑起来,也遇到不少问题,大部分与环境有关,少部分需要改一些代码,在此记录并分享一下,怕忘了。环境OS : macOS Catalina 10.15.7 (19H2)clang : Apple clang version 12.0.0 (clang-1200.0.32.27)protoBuf: 3原创 2020-12-08 17:31:30 · 3173 阅读 · 5 评论 -
Docker文件的存储位置
Ubuntu上docker文件的存储位置/var/lib/dockerMac 上docker文件的存储位置$HOME/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw和Ubuntu不同,在mac上,所有docker相关的文件都被保存到这一个文件中,默认大小是64GB,设置是在docker Desktop的Preferences/Resources中:...原创 2020-10-19 17:09:28 · 3171 阅读 · 0 评论 -
TensorFlow + MKL 内存泄漏及解决办法
TensorFlow + MKL 内存泄漏及解决办法背景最近在做深度学习在线推理相关的项目,底层使用TF来作为推断框架,我们知道,TF底层是用Eigen完成CPU的计算的,而Eigen的速度只能说一般般,与成熟的计算库在性能上的差距还是比较明显的,比如TF支持的intel MKL。之于如何使用TF+MKL,可以参考此文,其实就是在编译时加上--config=mkl选项,然后在生成可执行文件时链接libmkldnn.so, libmklml_intel.so, libimop5.so,就可以使用TF+原创 2020-06-08 20:32:24 · 1374 阅读 · 4 评论 -
java.library.path和LD_LIBRARY_PATH的介绍与区别
背景近期要将算法部署到一个机群的虚拟主机(Debian 9.1 gcc 6.3.0)上,采用的是Java + JNI + shared library的方式来完成底层算法能力的部署。其中需要用到各种第三方库,有从源码编译的,也有直接下载的so,包括OpenCV相关、TensorFlow相关、MKL以OpenMP相关的动态库。遇到一个问题,libmklml_intel.so 这个库只能放在 LD_LIBRARY_PATH中进行加载,而不能通过java.library.path完成加载,所以有必要搞清楚这原创 2020-05-21 15:11:10 · 10289 阅读 · 0 评论 -
深度学习应用开发架构的一种思路
深度学习应用开发架构的一种思路背景深度学习当下依然处在风口,它从一开始解决单一场景中单一问题的算法,逐步成长为能够解决复杂问题的效率工具。随着深度学习相关的各项技术的发展,对深度学习的要求也越来越具体:一方面是朝着小而快的方向发展,不断针对特定场景做深度定制优化、精简模型,将算法部署到到移动端甚至嵌入式设备;另一方面是朝着大而全的方向演进,目标是解决一些复杂但是通用的问题,这部分模型大多部署...原创 2020-03-25 14:22:23 · 483 阅读 · 0 评论 -
google/mediapipe Demo
背景最近项目中要用到手势检测以及手势关键点追踪,回想起google的这篇文章“On-Device, Real-Time Hand Tracking with MediaPipe”,打不开这个的,也可以看“中文版”,给出的效果是这样的:看到demo图片很心动,就想试试。过程1.下载项目代码git clone git@github.com:google/mediapipe.git...原创 2020-01-14 19:50:02 · 8657 阅读 · 12 评论 -
从0开始使用TensorFlow.js进行深度学习推断
原因最近项目里面考虑要在微信小程序里面加上识别触发以及检测追踪的功能,所以需要调研一下在Web端进行深度学习前向的可行性。这个可行性主要包含两个方面,一是模型是否支持:能否从现有模型转换为tfjs支持的模型;二是性能:tfjs的前向推断效率是否能满足我们的需求。名词解释JavaScriptJavaScript通常简写为JS,是一种高级的解释性脚本语言,遵循ECMAScript标准。JS支持...原创 2019-11-19 14:48:37 · 1342 阅读 · 0 评论 -
cmake 使用Openmp
cmake版本3.9及以上find_package(OpenMP)if(OpenMP_CXX_FOUND) target_link_libraries(MyTarget PUBLIC OpenMP::OpenMP_CXX)endif()旧版本的cmakeif(NOT TARGET OpenMP::OpenMP_CXX) find_package(Threads REQU...翻译 2019-10-12 11:31:46 · 6141 阅读 · 0 评论 -
阿里巴巴推断框架MNN在iOS上的使用小结
MNN介绍端侧智能现在已经不是新鲜话题,不管是从数据安全出发,还是从实时性能考虑,端侧深度学习算法推理都有其不可替代的优势。之前已经有一段时间的端侧推理框架热潮,google、Facebook、百度、腾讯、小米以及一些名气不大但是实力很强的小公司,都开源了自家的端侧推理框架,阿里MNN在18年年底开源,有后来居上的趋势和决心,不仅工程结构的完备性和规范性很好,开发团队和应用场景也有一定的优势。...原创 2019-07-03 11:17:34 · 5567 阅读 · 15 评论 -
在Android Studio中使用vulkan
首先要确定手机是否支持Vulkan,可以下载一个aida64,在设备中如果能找到vulkan设备,说明支持,否则不支持。严格按照官方介绍的步骤一步步执行,就能获得官方推荐的可执行的例子,有很多,可以都试一试。那怎么在自己的工程中使用vulkan呢?按道理说,Android官方支持vulkan,使用起来应该要比非官方支持的opencl方便的多,实际上也的确如此。不过由于vulkan是一个分层...原创 2019-01-31 17:23:04 · 8629 阅读 · 0 评论 -
在Ubuntu上进行ncnn+vulkan的测试
ncnn vulkanncnn在1月20号提交了对Vulkan的支持,而且更新了benchmark对Vulkan的测试,我们本来尝试在ncnn中添加Opencl,看到支持Vulkan非常高兴,迫不及待想试试。花了接近一天时间来完成benchmark,记录一下。系统: ubuntu 18.04查看显卡信息,安装显卡驱动参考这篇文章,作者写的非常详细,查询显卡和安装驱动。我的显卡是1050ti...原创 2019-01-25 15:05:01 · 10774 阅读 · 5 评论 -
在Android Studio上使用OpenCL
在尝试了很多的方法后,终于可以在Android Studio上使用OpenCL,现在记录一下过程。判断手机是否支持OpenCL的方法下载aida64,在设备里查看是否有OpenCL设备下载Opencl-z,如果支持,通过此软件可以查看到platform和device在native-lib中使用Openclgit clone git@github.com:GaussRieman/li...原创 2019-01-18 15:04:44 · 4809 阅读 · 0 评论 -
xiaomi MACE 在ubuntu18.04编译运行纪实
最重要三点:注意版本,注意版本,注意版本!git pull git@github.com:XiaoMi/mace.git照着https://mace.readthedocs.io/en/latest/installation/env_requirement.html#optional-dependencies,Docker不用装 ,把依赖项都装好,请一定要注意版本,TensorFlow不能用...原创 2019-01-18 14:29:55 · 608 阅读 · 0 评论