技术文章

深度长文|百度Paddle Lite性能进化之路!

十年热恋 提交于 2021-02-18 07:59:23
Paddle Lite 作为一款主打端侧高性能轻量化部署的推理引擎,具有 高扩展性 、训练推理 无缝衔接 , 通用性 、 高性能 和 轻量化 等优点。 面对不断升级的业务需求, Paddle Lite 是如何进行性能优化、提升自身竞争力的? 下面我们将围绕 框架层性能优化 、 GPU算子优化 、 CPU算子优化 以及 模型剪裁与搜索 四方面介绍性能优化的手段及思路。 (本文根据百度资深研发工程师 杨延展 在2019年11月19日软件绿色联盟开发者大会发表的 《深度剖析 Paddle Lite 性能进化之路》 主题演讲整理而成。) Paddle Lite 简介 Paddle Lite 是百度自研的一款深度学习框架库,它的前身是 Paddle Mobile,自2019年升级至 Paddle Lite 的全新架构后,拥有了更广泛的适用平台,支持从移动端到服务端的各类场景。 重点发力的移动端中,安卓和IOS已同时覆盖CPU和GPU,而且在安卓方面已经覆盖了华为NPU。 提到 Paddle Lite 的作用,大家在工作和生活中接触较多的有人脸识别、图片、视频分辨率提升、物体检测与跟踪等深度学习的场景。 Paddle Lite 如何实现上述场景中提到的功能呢? 简单概括就是 Paddle Lite 通过解析、加载并运行 Paddle 训练的模型,并将模型结果展示到业务层。 Paddle

深度长文:大瘟疫追凶

怎甘沉沦 提交于 2021-02-18 07:58:56
大概,不少国人对疫情认知的分水岭出现在1月23日的武汉“封城”。诚然,“封城”是一种比较极端的隔离方法。在历史上,为遏制传染病传播,隔离的手段已被人类使用了近七百年。 历史上的隔离 This pestilence was so powerful that it was transmitted to the healthy by contact with the sick. —— Giovanni Boccaccio 世界历史上出现过三次大的传染病事件, 史称“三次全球大流行”(下称大瘟疫,pandemics) 。第一次大瘟疫也叫“查士丁尼大瘟疫”,发生在公元541年。当时,东罗马帝国皇帝查士丁尼大帝励精图治,东征西讨,收复大量失地。不巧,一场大瘟疫迅速席卷欧洲。查士丁尼大帝采用了各种办法阻止瘟疫,也包括简单的隔离措施,然而,他失败了,一代雄主统一罗马帝国的梦想就此化为泡影 [1] 。 真正意义上隔离(quarantine)的出现与第二次大瘟疫(即黑死病大瘟疫)有关 。1347-1350年之间,据称至少2000万人死于这场席卷欧亚大陆的万分恐怖的大型瘟疫。之所以成为黑死病,一般认为是按其症状 acral necrosis,患者皮肤因皮下出血变黑。 人们在长时间和传染病斗争的过程中慢慢意识到,将病人隔离起来,似乎是一个有效的方法 。1377年,在杜布罗夫尼克(Dubrovnik

eclipse自动添加注释

試著忘記壹切 提交于 2021-02-18 07:58:03
java类注释: 在新建类访问修饰符如public等前按住alt+shift+j出来注释 方法注释同上 method body是在方法内部添加注释(实现接口的时候自动添加) 重写的时候自动添加用overriding methods 新建文件时类注释 效果 来源: oschina 链接: https://my.oschina.net/u/4280283/blog/3895084

【Eclipse】如何在Eclipse中如何自动添加注释和自定义注释风格

此生再无相见时 提交于 2021-02-18 07:57:44
背景简介 丰富的注释和良好的代码规范,对于代码的阅读性和可维护性起着至关重要的作用。几乎每个公司对这的要求还是比较严格的,往往会形成自己的一套编码规范。但是再实施过程中,如果全靠手动完成,不仅效率低下,还难以保证真正的符合规范。所以结合IDE环境,自动生成注释,还是很有必要的。今天我们就说一下,如何使用Eclipse给我们提供的自定义代码模版的功能来作业。 设置注释模板 设置注释模板的入口: Window->Preference->Java->Code Style->Code Template ,然后展开Comments节点就是所有需设置注释的元素了! 接下来,对每一个元素逐一介绍: 文件(Files)注释标签 Files标签是对新建的文件的说明,出现在文件最上面 举栗子: /* * * Copyright © ${year} eSunny Info. Tech Ltd. All rights reserved. * * @Package: ${package_name} * @author: ${user} * @date: ${date} ${time} */ 类型(Types)注释标签(类的注释) Types标签是对类Class的一个说明,出现在类上面 举栗子: /* * * @ClassName: ${type_name} * @Description: ${todo} *

BoCloud博云获得CNCF Kubernetes服务提供商认证

感情迁移 提交于 2021-02-18 07:57:08
近日,BoCloud博云正式获得 CNCF 和 Linux 基金认证的 Kubernetes 服务提供商资质(KCSP),此认证证明BoCloud博云在 Kubernetes 社区从事活动(包括积极贡献代码)、支持企业最终用户的商业模式、以及将工程师派驻客户现场这三面具有相应的技术实力。 KCSP 计划(全称 Kubernetes Certified Service Provider)是由 CNCF 和 Linux 基金会发起,旨在对在 Kubernetes 的企业应用中拥有丰富经验的服务商进行认证。而被认证的 Kubernetes 供应商均可提供 Kubernetes 支持、咨询、专业服务和培训。同时,KCSP 计划可以确保计划采用 Kubernetes 的组织得到更加专业的支持和服务,确保可以支持其生产和运营方面的要求。 根据 CNCF 相关规定,KCSP 计划要求申请企业除了积极参与 Kubernetes 社区活动,长期做出积极贡献之外,更为关键的是 企业的商业模式支持 为客户提供各种 Kubernetes 技术支持服务 ,包括将工程师派驻客户现场,并且企业需要至少三名工程师通过Kubernetes管理员(CKA)认证。 “KCSP 的创始成员代表 Kubernetes 生态系统趋于成熟,还表明 Kubernetes 已准备好广泛用于大大小小的企业。随着 Kubernetes

简易管理工具和运维工具

前提是你 提交于 2021-02-18 07:56:03
github地址 https://github.com/ming0804/easy-server 预览地址 http://mingming.work/ 只提供查看权限 账号 :测试用户 密码 :111111 目录 系统人员管理模块 权限管理 角色管理 用户管理 centos服务器管理 服务列表 软件库 nginx管理 静态文件管理 服务状态查看 防火墙管理 redis单机管理 centos的用户管理 centos文件权限管理 jar包的部署 系统人员管理模块 权限管理 角色管理 用户管理 centos服务器管理 目前只针对centos系统进行支持 使用此工具 得先添加centos服务器 只支持root用户 当然 自己部署在自己的服务上 可以允许的 服务列表 当服务状态不一致的时候 可点击刷新机器状态去获取当前机器状态 下个版本应该会自己轮训获取 软件库 目前只支持这几个环境进行安装 jdk是1.8版本 nginx管理 这个是主要功能 可进行页面nginx功能管理 后面会进行支持自定义参数设置 下面进行百度代理案例 1:现在软件库中安装nginx模块 2:到nginx管理界面点击添加端口监听 3:点击查看路由 进行路由地址设置 代理类型选择直接地址转发 百度使用https的链接 4:启动ngixn 访问本机的服务器的ip加刚刚监听的端口 即可 静态文件管理

2017年蓝桥杯B组C/C++决赛题解

99封情书 提交于 2021-02-18 07:55:23
##<a href="https://www.cnblogs.com/fisherss/p/10869317.html">2017年蓝桥杯B组C/C++决赛题目(不含答案)</a> ###1.36进制 ok 求36进制,类比二进制转10进制,36^3 + 36^2 + 36^1 + 36^0 ###2.磁砖样式 ok dfs搜索 我自己写的答案不对dfs多搜了一些,原因是 判断条件不能连等于 例如a==b==c==d 是错误的,已经改正 #include <stdio.h> #include <string.h> #include <map> #include <algorithm> using namespace std; const int w = 3, h = 10; int g[w][h]; int ans = 0; map<int, int> Hash; //检查2x2格子颜色是否相同 bool check_color() { for(int i = 0; i < w; i++) for(int j = 0; j < h; j++) { if(i+1 < w && j+1 < h) { if((g[i][j]+g[i][j+1]+g[i+1][j]+g[i+1][j+1]) % 4 == 0) return false; } } return true; } void

Apache Httpd 反向代理配置

▼魔方 西西 提交于 2021-02-18 07:43:21
配置文件 :httpd.conf 先启动相关模块(去掉前面的注释#) LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 然后在文件最后加上 Listen 443 <VirtualHost *:443> ServerName example ServerAlias example ProxyRequests off <Proxy *> Order allow,deny Allow from all </Proxy> ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ SSLEngine

Nginx reverse proxy NSQAdmin

对着背影说爱祢 提交于 2021-02-18 07:40:25
以下配置只针对nsqadmin v1.1.0 (built w/go1.10.3)版本 # # The default server # server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location /nsq/ { auth_basic "NSQ Administrator's Area"; auth_basic_user_file /root/nsq/bin/.htpasswd; proxy_pass http://127.0.0.1:4171/; # proxy_redirect default; proxy_redirect http://127.0.0.1:4171/ /nsq/; proxy_set_header Accept-Encoding ""; # no compression allowed or next won't work sub_filter_types *; sub_filter '/static

如何选定你的职业方向(深度长文)

不想你离开。 提交于 2021-02-18 07:39:24
文章转自明哥聊求职 本文旨在详解职业选择需要考虑的方方面面因素,为作者近二十年的职场经验分享,全文1.3万字,如果你面临择业或重新择业,相信这篇长文会带给你一些启发。 明哥的猎聘求职指导系列课程直播课,开启第二讲:求职前的准备工作,如果你确定了职业方向,对求职前的准备有点小迷茫,今晚六点半洗白白等你来,扫码免费听课—— 两个小孩去森林玩,不幸遭遇了大老虎,一个小孩撒腿就跑,另一个小孩拽住他:“别跑了,我们再跑也跑不过大老虎。”撒腿就跑的小孩扭头对他说:“我不需要比老虎跑得快,只要跑得比你快就行了”,说完就是一通夺路狂奔。老虎追上跑得慢的小孩就可以开餐了,跑得快的小孩会活下来。 这个故事告诉我们:努力很重要! 还是这两个熊孩子,上次老虎吃饱了,结果跑的没死,没跑的也没死,不吸取教训又去森林了,倒霉催得又碰到了大老虎。这次老虎饿三天了,一个小孩又撒腿就跑,另一个小孩拽住他说“你跑也没用”,这个小孩说“我跑得比你快就行”……没想到,没跑的小孩讲了一句话:“那可未必”。跑的小孩玩了命地跑,没跑的小孩噌噌噌爬到树顶上去了。跑的小孩终究没跑过大老虎,被老虎吃掉了。在树上的小孩没事,因为老虎爬不了那么高的树。 这个故事告诉我们:选择比努力更重要! 决定我们一生的,第一是我们的选择,第二才是我们的能力和努力。 选择对了,事半功倍;选择错了,可能事倍功半,甚至南辕北辙。只有在方向正确的前提下