专注于做有价值的技术原创

0%

1. Make

make 是 linux 系统的实用程序。它用于管理对于大型程序的自动编译任务,自动决定程序某一部分需要重新编译,并发出编译指令。虽然,我们最常见于 C 语言程序的编译。但是,make 不限于某一特定语言,凡是可以通过 shell 命令来运行编译器的语言都可以使用 make 。除此之外,你甚至可以用 make 描述任何构建任务,这些任务中,文件需要在其依赖的文件发生变动后自动更新。

2. Makefile

在使用 make 之前,你必须在当前目录下添加一个 Makefile 文件,它描述了文件之间的依赖(输入输出)关系,并提供更新文件的 Shell 命令。Makefile 文件名可以是 Makefile 也可以是 makefile ,推荐使用 Makefile

2.1 构成

简单的 Makefile 文件由若干如下格式的规则(rule)组成:

1
2
target: prerequisites
recipe
阅读全文 »

Shell 编程入门

前言

无论是前端,后端还是移动端,大数据,AI还是运维,等等。作为一个高效的 Coder 都必须掌握 shell 编程。So,本文将告诉,入门 shell 其实很简单,抽点时间就能掌握的高回报率的小技能。

1. 基础知识

1.1 命令行

包行命令和参数的行称为命令行。语法格式如下:

1
command [arg1] [arg2] ... [argn] RETURN
阅读全文 »

1. 安装

1.1 普通安装

kaggle 命令行工具安装在系统搜索路径下。

1
pip install kaggle

1.2 Mac/Linux 推荐安装

kaggle 命令行工具安装在当前登陆用户目录 ~/.local/bin 下。

1
pip install --user kaggle

安装完成功后,确保 ~/.local/bin 添加到 PATH 环境变量中。

阅读全文 »

1. Sphinx 和 Read the Docs

1.1 Sphinx

Sphinx 是一个强大的文档生成器,具有许多用于编写技术文档的强大功能,包括:

  • 维护一份源文档,生成网页,可打印的PDF,用于电子阅读器(ePub)的文档等
  • 支持 reStructuredText 或 Markdown 编写文档
  • 被广泛使用的代码文档系统
  • 代码示例语法高亮
  • 活跃的官方和第三方扩展生态

1.2 Read the Docs

“Read the Docs” 提供自动构建,版本控制和在线托管,来简化软件文档的发布和管理。它使用 Sphinx 生成 html 静态页面,通过 github 账户授权,在本地项目 push 到 github 仓库时,自动完成文档的生成和在线更新。

阅读全文 »

github: https://github.com/kenblikylee/kcrawler

git clone https://github.com/kenblikylee/kcrawler.git

1. 安装

1.1 环境要求

  • python>=3.0
  • pip>=19.0
1
2
3
python -V
pip install --upgrade pip
pip -V

1.2 查看最新版本

1
pip search kcrawler

1.3 初次安装

1
2
3
pip install kcrawler
# or
pip install --index-url https://pypi.org/simple kcrawler
阅读全文 »

1. VGG 模型架构

VGG 由牛津大学视觉几何组(Visual Geometry Group)开发。包含两个版本:VGG16 和 VGG19,分别有16个层级和19个层级。本文只介绍 VGG16 。根据 arxiv.org 上公布的论文,VGG 的卷积核大小为 (3, 3),最大池化层核大小 (2, 2),隐藏层激活函数为 ReLu, 输出层激活函数为 softmax。如果我们能知道模型各层的输入输出 shape 及层叠顺序,就能使用 Keras 自己搭建一个 VGG 。幸运的是,我们不需要从晦涩难懂的论文中提炼出模型的这些参数细节,Keras 可以直接给到我们这个模型全部细节。

如下使用 Keras 直接创建一个 VGG16 模型,并加载在 ImageNet 上训练好的权重:

1
2
3
from keras.applications.vgg16 import VGG16

VGG16_model = VGG16(weights='imagenet')
阅读全文 »

1. 导入keras

1
2
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

2. Conv2D

构建卷积层。用于从输入的高维数组中提取特征。卷积层的每个过滤器就是一个特征映射,用于提取某一个特征,过滤器的数量决定了卷积层输出特征个数,或者输出深度。因此,图片等高维数据每经过一个卷积层,深度都会增加,并且等于过滤器的数量。

阅读全文 »

前言

本文以笔者实际发布的 python 包 imgkernel 为例。因此,在本文所有出现 imgkernel 的地方,都替换成读者自己项目或包的名称。 同时,imgkernel 也托管在 github 上,后续 master 分支会更新,但是项目单独检出的 pkg 分支将保持与本文内容一致,不再改动。因此,可以将此分支 clone 下来作为新项目启动工程。clone pkg 分支的方法如下:

1
git clone -b pkg https://github.com/kenblikylee/imgkernel.git

下面分步骤讲解 imgkernel 项目的创建,生成,发布测试,正式发布到 PyPi 和安装使用。

阅读全文 »

前言

深度学习领域,解决图像分类问题,最常用的就是卷积神经网络(Convolutional Neural Network)简称 CNN。之所以称之卷积神经网络,是因为,隐藏层中使用了卷积层,来处理二维(灰度)或三维(RGB)的图像数据。每个卷积层由多个过滤器(Filter)组成,每个过滤器对应一个小矩阵(行列数通常为2或者3),矩阵沿着图像的行列,按一定步长,依次乘积,求和,得到一副新的图像数据,这个过程就是对图像求卷积的过程。

阅读全文 »

Keras 是一个用于定义和训练神经网络的高阶API。简单的说,Keras 是对 TensorFlow 等深度学习框架的更高一层的封装,以提供更加优雅,用户友好的接口设计。因此,Keras 不能独立运行,需要底层框架的支持,这个底层框架可以是 TensorFlow, CNTK, Theano。推荐使用 TensorFlow , 本文也是以 TensorFlow 为例。

1. 预备知识

1.1 什么是神经网络?

在人工智能领域,通常所说的“神经网络”,完整说法应该是“人工神经网络”。它是人类为了使机器具备人类的智力行为,使用计算机算法模拟人类神经系统,开发的一种机器学习技术。人类的神经系统是由一个个神经元彼此相连,构成的复杂网络系统。

下图是大脑神经元结构,神经元从它的多个树突(DENDRITES)接收输入(神经冲动),经过处理,判断是否通过轴突(AXON)输出神经冲动。

阅读全文 »