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

0%

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)输出神经冲动。

阅读全文 »

1. 初识 Nuxt.js

Nuxt.js 是一个基于 Vue.js 的通用应用框架。

与 vuepress 的关系:

Nuxt.js 能够胜任 VuePress 的功能,但它专为构建应用程序而设计,而 VuePress 更适合构建以内容为中心的静态站点,如技术文档,博客等。

2. 环境

笔者使用的 node 和 npm 版本如下:

  • node v10.13.0
  • npm v6.4.1

笔者测试 node v8.9.0 在安装依赖时会报错。在使用 nvm 切换到 node v10.13.0 后问题解决。

阅读全文 »

引言

  深度学习(Deep Learning)本质就是多层神经网络。本文试图从神经网络诞生到当今炙手可热的深度学习最新进展,提供一个简单的发展历史概览。本文持续更新,为了力保事件准确性和可考证性,将提供相关参考来源。如有错误之处,欢迎读者朋友在评论区加以指正。

阅读全文 »

引言

昨天在老家,发布了一篇《python 自动抓取分析房价数据——安居客版》。在文末,第6小节提供了完整代码,可以在 python3 环境,通过命令行传入参数 cookie 自动抓取房价数据。今天回到深圳,才想到,这段脚本只能抓取西双版纳的房价数据,如果读者不自己修改,那么就无法抓取其他城市的房价数据。于是,决定“好事做到底,送佛送到西”,将脚本加以修改,以北上广深为例,提供灵活抓取分析其他城市房价的完整代码。

阅读全文 »

引言

中秋回家,顺便想将家里闲置的房子卖出去。第一次卖房,没经验,于是决定委托给中介。中介要我定个价。最近几年,房价是涨了不少,但是长期在外,也不了解行情。真要定个价,心里还没个数。网上零零散散看了下,没有个系统的感知。心想,身为一代码农,为何要用这种低效的方式去了解房价。于是,就有了今天这篇专栏,也是继上篇《python 自动抓取分析文章阅读量——掘金专栏版》json 爬虫的一个补充。这次要抓取的房价来自安居客,西双版纳房价数据(其他房产相关的垂直平台还未覆盖)。之所以说是上一篇的补充,因为,这次数据来自 html 。废话不多说,撸起袖子开始干。

阅读全文 »