程序员欢乐送(第20期)

程序员欢乐送(第20期)

收录于话题 #程序员欢乐送
59个
程序员欢乐送(第20期)
对于我来说,我一直保持的追求有三点:技术、快乐、财富。因此,从此三点出发,记录过去一周,我所看到的,值得分享的内容,每周五把欢乐送达。

由于微信不允许外部链接,你需要点击页尾左下角的“阅读原文”,才能访问文章的链接,文中的所有链接已使用蓝色字体标记。

技术

Technology

1、Windows Terminal

微软Build大会上,微软正式发布了命令行工具Windows Terminal,该工具提供多标签、分割窗口、快捷键、完整的Unicode字符支持等功能。

最重要的是,它支持PowerShell,Cmd,WSL(Windows的Linux子系统)和SSH等命令行程序,可以说是全平台制霸,简化开发者的工作流程。

微软还给Windows Terminal加入很多细节功能,让它更美观。
程序员欢乐送(第20期)

项目地址:点击查看

2、Google Assistant

微软Build大会之后紧跟着的就是Google I/O 2019大会,两位巨佬为很多公司指引方向。在Google I/O 2019大会上,Google Assistant再次进化,移动端实时识别语音速度提升 10 倍!

如今的语音助手和人的对话已经接近自然,在与 Google Assistant 对话中,用户可以跨越手机上的 APP 工作。

除此之外,还有很多有趣的应用,例如AR鲨鱼等,更多资讯可以去官网查看。

官网地址(需***):点击查看

3、MNN

近期,阿里开源了自家轻量级的深度神经网络推理引擎MNN(Mobile Neural Network),用于在智能手机、IoT设备等端侧加载深度神经网络模型。

目前,MNN已经在阿里巴巴的手机淘宝、手机天猫、优酷等20多个App中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。此外,IoT等场景下也有若干应用。

与Tensorflow、Caffe2等同时覆盖训练和推理的通用框架相比,MNN更注重在推理时的加速和优化,解决在模型部署的阶段的效率问题,从而在移动端更高效地实现模型背后的业务。
程序员欢乐送(第20期)

项目地址:点击查看

4、PySOT

PySOT 目标跟踪库实现了目前SOTA的多个单目标跟踪算法,该项目是用Python编写,基于PyTorch深度学习框架,这是商汤的开源项目。

该项目还包含用于评估跟踪器(tracker)的Python工具接口。

PySOT 共包含 5 种算法、3 种 backbone、评估工具支持5种数据集。

目前 PySOT 并没有上传相应源码,但该项目很可能会在2019年5月底或6月初,全部上线!
程序员欢乐送(第20期)

项目地址:点击查看

5、PySnooper

不知道你调试过python代码没?大多数人调式python代码的方法就是print打印一些变量,找规律看代码哪里有bug。

PySnooper是一个调试工具,帮我们调试python代码,可以打印每行代码的运行时间和变量的变更情况等。

举一个简单的例子,比如你想调试number_to_bits函数,那么就可以在这个函数前加@pysnooper.snoop()修饰器。

import pysnooper

@pysnooper.snoop()
def number_to_bits(number):
    if number:
        bits = []
        while number:
            number, remainder = divmod(number, 2)
            bits.insert(0, remainder)
        return bits
    else:
        return [0]

number_to_bits(6)

这样就可以输出如下调试信息:

Starting var:.. number = 6
15:29:11.327032 call         4 def number_to_bits(number):
15:29:11.327032 line         5     if number:
15:29:11.327032 line         6         bits = []
New var:....... bits = []
15:29:11.327032 line         7         while number:
15:29:11.327032 line         8             number, remainder = divmod(number, 2)
New var:....... remainder = 0
Modified var:.. number = 3
15:29:11.327032 line         9             bits.insert(0, remainder)
Modified var:.. bits = [0]
15:29:11.327032 line         7         while number:
15:29:11.327032 line         8             number, remainder = divmod(number, 2)
Modified var:.. number = 1
Modified var:.. remainder = 1
15:29:11.327032 line         9             bits.insert(0, remainder)
Modified var:.. bits = [1, 0]
15:29:11.327032 line         7         while number:
15:29:11.327032 line         8             number, remainder = divmod(number, 2)
Modified var:.. number = 0
15:29:11.327032 line         9             bits.insert(0, remainder)
Modified var:.. bits = [1, 1, 0]
15:29:11.327032 line         7         while number:
15:29:11.327032 line        10         return bits
15:29:11.327032 return      10         return bits
Return value:.. [1, 1, 0]

项目地址:点击查看

6、NeuronBlocks

NeuronBlocks为微软的开源项目,它是基于PyTorch的NLP深度学习工具包,旨在减少NLP工程师们在模型实现过程中的编程成本,该工具包可以让开发者像搭积木一样构建自然语言理解深度学习模型。

该工具包支持中英文,主要包括Block Zoo和Model Zoo两个部分。
程序员欢乐送(第20期)

Block Zoo将常用的神经网络层抽象并封装为可重用的标准模块,这些模块将被用于构建各种深度学习模型。标准的神经网络模块包括:词嵌入、CNN、LSTM、Transformer和各种Attention等。

Model Zoo提供大量预构建好的深度神经网络模型,涵盖了常见的NLP任务,这些模型以JSON配置文件的形式呈现。用户通过简单修改Model Zoo中的示例模型配置,即可将其应用于自己的任务中,无需一行代码就可以开启模型训练。

同时,NeuronBlocks支持Linux和Windows操作系统、CPU与GPU处理器以及PAI等GPU平台。

NeuronBlocks的优势如下:

1)模型构建:用户只需要配置简单的JSON文件,就能够构建模型和调整参数,大大减少了模型实现的工作量;

2)模型分享:可以通过分享JSON配置文件来分享模型,使模型共享变得非常容易。对于不同的任务或模型,用户只需维护一个通用的源码库;

3)代码重用:可以在各任务与模型间共享神经网络模块,减少重复的编程工作;

4)平台灵活性:NeuronBlocks可以在Linux和Windows机器上运行,支持CPU和GPU,也支持像Philly和PAI这样的GPU管理平台;

5)模型可视化:NeuronBlocks提供了一个模型可视化工具,用于观察模型结构及检查JSON配置的正确性;

6)可扩展性:NeuronBlocks鼓励用户贡献新的神经网络模块或着新的模型。

项目地址:点击查看

7、GCNet

近年来,注意力模型以其强大的建模能力受到了广泛地研究与关注。

基于注意力模型,来自清华、港科大、微软亚研院的研究者们提出了一种新的全局上下文建模网络(Global Context Network,简称 GCNet)。

此网络同时吸取 Non-local Network 全局上下文建模能力强与 Squeeze-Excitation Network 计算量低的优点,在目标检测、图像分类与动作识别等基础任务中,在计算量几乎无增加的情况下显著提升准确度。
程序员欢乐送(第20期)

项目地址:点击查看

快乐

Pleasure

1、亲

程序员欢乐送(第20期)

2、还没出生就开始蹦迪

程序员欢乐送(第20期)

财富

Wealth

提到众筹,各位应该都不陌生。本人也在朋友圈为好朋友宣传的众筹发起者提供过一定的金额支持,谁还没有个需要别人帮助的时候呢?

五一小长假期间,就有一个关于众筹的瓜:德云社演员吴鹤臣突发脑溢血住院众筹100万,引来一片骂声。

有人挖出猛料,他家有两套房、一辆车,妻子还刚刚买了华为高端手机,而且在北京用医保的情况下,单纯治疗费根本用不到100万。

一个没有到山穷水尽的家庭,去搞众筹,很容易掉进“道德陷阱”,被骂的体无完肤。

不去评价吴家人的做法的对错,单纯说下感受。

突发脑溢血是很严重,开颅手术也达到了重大疾病的保险理赔标准,吴家人是有能力自救的,但是却没有做尝试,而是直接发起众筹。这违背了大众对于众筹的共识,因此引来一片骂名。

不过对于一个家庭而言,有房有车,也很难支撑这场灾难带来的打击。挺过去了,也是元气大伤。

因为这场病,很难在维持原有的生活水平,吴家人不想因病返贫,所以发起众筹。

但众筹是救急的,而非救穷的,总不能因为怕穷而发起众筹吧。

在生了重病的时候,重疾险就能发挥它的作用,重疾险与医疗险的设计初衷是不同的。

医疗险可以报销我们的医疗费用,而重疾险提供的是合同中的指定保额,这笔钱能够继续维持自己和家人未来几年的生存,帮我们保留一些基本的体面和尊严,为家庭的复苏提供一个缓冲期。

本节整理自:兔保哥。

最后

The end

本周的程序员欢乐送,到此结束,下周再会。
程序员欢乐送(第20期)

Jack Cui https://cuijiahua.com
分享技术,乐享生活

上一篇:《明解C语言(入门篇)》练习7-4


下一篇:CentOS查看多核负载