• 用 Python 构建一个极小的区块链

    Posted by : lon.y@qq.com on 2018年3月18日

    虽然有些人认为区块链是一个早晚会出现问题的解决方案,但是毫无疑问,这个创新技术是一个计算机技术上的奇迹。那么,究竟什么是区块链呢? 区块链 以比特币(Bitcoin)或其它加密货币按时间顺序公开地记录交易的数字账本。 更通俗的说,它是一个公开的数据库,新的数据存储在被称之为区块(block)的容器中,并被添加到一个不可变的链(chain)中(因此被称为区块链(blockchain)),之前添加的数据也在该链中。对于比特币或其它加密货币来说,这些数据就是一组

    阅读全文...

  • 愉快地迁移到 Python 3

    Posted by : lon.y@qq.com on 2018年3月17日

    为数据科学家准备的 Python 3 特性指南 Python 已经成为机器学习和一些需处理大量数据的科学领域的主流语言。它支持了许多深度学习框架和其他已确立下来的数据处理和可视化的工具集。 然而,Python 生态系统还处于 Python 2 和 Python 3 并存的状态,且 Python 2 仍然被数据科学家们所使用。从 2019 年底开始,系统工具包将会停止对 Python 2 的支持。对于 numpy,2018 年之后任何更新将只支持 Pytho

    阅读全文...

  • 一篇文章教你如何用 Python 记录日志

    Posted by : lon.y@qq.com on 2018年3月9日

    对一名开发者来说最糟糕的情况,莫过于要弄清楚一个不熟悉的应用为何不工作。有时候,你甚至不知道系统运行,是否跟原始设计一致。 在线运行的应用就是黑盒子,需要被跟踪监控。最简单也最重要的方式就是记录日志。记录日志允许我们在开发软件的同时,让程序在系统运行时发出信息,这些信息对于我们和系统管理员来说都是有用的。 就像为将来的程序员写代码文档一样,我们应该让新软件产生足够的日志供系统的开发者和管理员使用。日志是关于应用运行状态的系统文件的关键部分。给软件加日志产生

    阅读全文...

  • 实现属于自己的TensorFlow(二) – 梯度计算与反向传播

    Posted by : lon.y@qq.com on 2018年2月5日

    前言 上一篇中介绍了计算图以及前向传播的实现,本文中将主要介绍对于模型优化非常重要的反向传播算法以及反向传播算法中梯度计算的实现。因为在计算梯度的时候需要涉及到矩阵梯度的计算,本文针对几种常用操作的梯度计算和实现进行了较为详细的介绍。如有错误欢迎指出。 首先先简单总结一下, 实现反向传播过程主要就是完成两个任务: 实现不同操作输出对输入的梯度计算 实现根据链式法则计算损失函数对不同节点的梯度计算 再附上SimpleFlow的代码地址: https://gi

    阅读全文...

  • 15 分钟用 ML 破解一个验证码系统

    Posted by : lon.y@qq.com on 2018年1月30日

    人人都恨验证码——那些恼人的图片,显示着你在登陆某网站前得输入的文本。设计验证码的目的是,通过验证你是真实的人来避免电脑自动填充表格。但是随着深度学习和计算机视觉的兴起,现在验证码常常易被攻破。 我拜读了 Adrian Rosebrock 写的《Deep Learning for Computer Vision with Python》。在书中,Adrian 描述了他是怎样用机器学习绕过纽约 E-ZPass 网站上的验证码: Adrian 无法接触到该应用

    阅读全文...

  • 实现属于自己的TensorFlow(一) – 计算图与前向传播

    Posted by : lon.y@qq.com on 2018年1月30日

    前段时间因为课题需要使用了一段时间TensorFlow,感觉这种框架很有意思,除了可以搭建复杂的神经网络,也可以优化其他自己需要的计算模型,所以一直想自己学习一下写一个类似的图计算框架。前几天组会开完决定着手实现一个模仿TensorFlow接口的简陋版本图计算框架以学习计算图程序的编写以及前向传播和反向传播的实现。目前实现了前向传播和反向传播以及梯度下降优化器,并写了个优化线性模型的例子。 代码放在了GitHub上,取名SimpleFlow, 仓库链接: 

    阅读全文...

  • 码农不识贝叶斯,虽知数据也枉然

    Posted by : lon.y@qq.com on 2017年12月28日

    数据的重要性毋庸置疑,但是如何让数据产生价值呢? 对一个全栈老码农而言,经常在开发或者研发管理的时候遇到各种预测、决策、推断、分类、检测、排序等诸多问题。面对“你的代码还有 bug 么?”这样的挑战,一种理智的回答是,我们已经执行了若干测试用例,代码中存在bug的可能性是百分之零点几。也就是说,我们对当前程序中没有bug的信心是百分之九十九点几。这实际上就是一直贝叶斯思维,或者说使用了贝叶斯方法。不论我们看到,还是没有看到,它都在那里,熠熠生辉。 如果预测

    阅读全文...

  • 使用Python开始机器学习

    Posted by : lon.y@qq.com on 2017年12月27日

    目前机器学习红遍全球。男女老少都在学机器学习模型,分类器,神经网络和吴恩达。你也想成为一份子,但你该如何开始? 在这篇文章中我们会讲Python的重要特征和它适用于机器学习的原因,介绍一些重要的机器学习包,以及其他你可以获取更详细资源的地方。 为什么用Python做机器学习 Python很适合用于机器学习。首先,它很简单。如果你完全不熟悉Python但是有一些其他的编程经验(C或者其他编程语言),要上手是很快的。其次,Python的社区很强大。这使得Pyt

    阅读全文...

  • Ruby 和 Python 分析器是如何工作的?

    Posted by : lon.y@qq.com on 2017年12月25日

    你好! 我作为一名编写Ruby profiler的先驱,我想对现有的Ruby和Python profiler如何工作进行一次调查。 这也有助于回答很多人的问题:“你怎么写一个profiler?” 在这篇文章中,我们只关注CPUprofiler(而不是内存/堆profiler)。 我将解释一些编写profiler的一般基本方法,给出一些代码示例,以及大量流行的Ruby和Pythonprofiler的例子,并告诉你它们是如何工作的。 在这篇文章中可能会有一些错

    阅读全文...

  • Python Django 性能测试与优化指南

    Posted by : lon.y@qq.com on 2017年12月20日

    唐纳德·克努特(Donald Knuth)曾经说过:“不成熟的优化方案是万恶之源。”然而,任何一个承受高负载的成熟项目都不可避免地需要进行优化。在本文中,我想谈谈优化Web项目代码的五种常用方法。虽然本文是以Django为例,但其他框架和语言的优化原则也是类似的。通过使用这些优化方法,文中例程的查询响应时间从原来的77秒减少到了3.7秒。 本文用到的例程是从一个我曾经使用过的真实项目改编而来的,是性能优化技巧的典范。如果你想自己尝试着进行优化,可以在Git

    阅读全文...