Category: Python

机器学习笔记3-Tensorflow简介

机器学习笔记3-Tensorflow简介

前言 前面两篇主要写了一些机器学习的基础概念,从本篇开始我们来了解下深度学习。深度学习是机器学习的一个子集,是一种特殊的数学模型。同样是从输入到输出,深度学习在这两者之间会有很多层称为“隐层”(Hidden Layers)的层,每一层将会将输入内容进行计算并自我调节,最终得到合理模型,这种数学模型非常像人类目前对大脑工作原理的认知,所以也称之为“人工神经网络”。 现在市面上有数十种深度学习框架:Wiki传送门。一个个学过来肯定精力不够,那我们就学综合评分最高的那个:Tensorflow。 Tensorflow是由Google团队在2015年11月9日以Apache 2.0开源许可证开源的,但刚发布的版本有诸多缺陷:bug比较多、性能比较差、使用难度比较高。在2017年2月16日,Google宣布Tensorflow 1.0正式发布,该版本适用于工业生产场景。所以在该版本发布之后,对深度学习领域产生了极大的影响,其大大简化了编写深度学习的代码难度,并且在Google这面大旗下,被各种专业人员以及机器学习爱好者所推崇(截止2018年1月9日,Tensorflow在Github上已经有7193个Watch,85038个Star和41555个Fork)。 Tensorflow在短短发布后的一年不到的时间里,已经跃居为综合排名第一的深度学习框架。为什么会如此火爆呢?我个人猜测理由如下: 深度学习目前是大趋势(所以得抓紧学习,抓住机遇) Google的技术实力太强大,开源过很多项目都非常成功(比如Android),所以跟着Google走可能不会让我们失望 接口丰富易用且支持多种语言(底层是C++实现的,这里指的是客户端调用底层API的语言),如Python、C++、Java、Go 易于部署,包括分布式部署 本机安装Tensorflow 如果你的电脑性能还不错,可以考虑直接在本机安装Tensorflow(官方安装文档传送门),优先考虑使用Anaconda来安装,按照官方教程一步步执行即可。 安装之后,需要在Pycharm中执行Tensorflow的代码,我们这里先用简单的输出常量的代码为例(此代码也是后文中demo1.py中的代码): import tensorflow as tf node1 = tf.constant(3.0, dtype=tf.float32) node2 = tf.constant(4.0) # also tf.float32 implicitly print(node1, node2) sess = tf.Session() print(sess.run([node1, node2])) 常见错误汇总 执行代码的时候,你可能会遇到很多错误,我这里整理了一份我在此过程中遇到的错误以及对应的解决方案供大家参考: 错误提示 解决方案 Anaconda installation is not found https://stackoverflow.com/questions/47624777/pycharm-anaconda-installation-is-not-found ImportError: Could not […]

机器学习笔记2 – sklearn之iris数据集

机器学习笔记2 – sklearn之iris数据集

前言 本篇我会使用scikit-learn这个开源机器学习库来对iris数据集进行分类练习。 我将分别使用两种不同的scikit-learn内置算法——Decision Tree(决策树)和kNN(邻近算法),随后我也会尝试自己实现kNN算法。目前为止,我还是在机器学习的入门阶段,文章中暂不详细解释算法原理,如果想了解细节信息可自行搜索。 代码分解 读取数据集 scikit-learn中预制了很多经典数据集,非常方便我们自己练习用。使用方式也很容易: # 引入datasets from sklearn import datasets # 获取所需数据集 iris = datasets.load_iris() load_iris返回的结果有如下属性: feature_names – 分别为:sepal length (cm), sepal width (cm), petal length (cm)和 petal width (cm) data – 每行的数据,一共四列,每一列映射为feature_names中对应的值 target – 每行数据对应的分类结果值(也就是每行数据的label值),其值为[0,1,2] target_names – target的值对应的名称,其值为[‘setosa’ ‘versicolor’ ‘virginica’] 分离数据 监督学习可以用一个简单的数学公式来代表: y = f(X) 按上一篇中的相关术语描述就是已知X(features),通过方法f(classifier)求y(label)。 […]

Python3学习笔记2:简易Web爬虫

Python3学习笔记2:简易Web爬虫

开发环境 基础语法那章的内容我是在Docker容器中玩的,但是真正做项目的时候,没有IDE的强大辅助功能来协助的话是很累人的一件事。因此本文中,我选择使用Jetbrain的Pycharm这个IDE来开发、调试代码。IDE的好处多多,比如: 强大的智能提示 强大的断点调试 性能追踪 方便好用的各种插件 各种自定义配置 需求 为了实践Python,最先想到的就是要完成一个爬虫程序,大概需求如下: 实施 可配置化我本身是计划通过DI(Dependency Injection)这个技术来完成,不过查了下资料,由于Python和其他语言不太一样,Python是可以多父类继承,并且遵循Duck Typing原则,因此DI在Python中并不实用(Python也是没有Interface概念的)。但可以通过如下方式实现类似的逻辑: # 假设a-class-name这个类包含在xxx.py文件中,首先引入这个文件中的内容 from xxx import * # 然后执行以下这行代码,这将初始化一个a-class-name类的实例 (lambda x: globals()[x])(‘a-class-name’) 入口程序文件main.py main.py主要有几个功能: 通过交互让用户输入:项目名称、网站首页、线程数三个初始化变量 初始化数据库访问对象 初始化爬虫对象 初始化线程池 执行程序 核心代码如下: from db_queue import * … def execute(): … (lambda x: globals()[x])(project_settings.DB_CLASS_NAME)(home_page, project_name + ‘_pages’) Spider(project_name, home_page, DomainHelpers.get_domain_name(home_page), project_settings.HTML_RESOLVER_NAME) […]

Python3学习笔记 – day1

Python3学习笔记 – day1

前言 本文不是一篇系统的从零开始学习Python的教程,如果你需要从零开始学习Python,廖雪峰的官方网站中Python教程这部分将是比较好的一种选择,如果你英语比较好,也可以在国外的一些网站上找到优质的教学视频(比如某油管视频网站)。 阅读本文的前提可能需要你有一定的编程基础,并最好了解一种以上其他主流的面向对象的编程语言,比如Java、C#、PHP等。 首先需要了解的是,Python与PHP类似,是一种解释型的编程语言,与之对应的是Java、C#这类编译型的语言。我自己有比较丰富的C#和PHP方面的经验,两种类型的语言(指解释型和编译型)各有各的优缺点。随着各种语言的发展,现在各种语言之间也会互相借鉴一些好的特性,因此语言之间的差异也开始越来越模糊。所以我认为语言并没有好坏之分,而是某种语言会更适合在某些场景下使用,如果你会多种语言,可以根据需求选用不同的语言开发,从而达到事半功倍的效果。 基本语法 这里只说三点,与其他语言相同或者相似之处就不做解释了。 注释 单行注释符号: # # This is one line comment 多行注释: 以”’(三个单引号)起始,并以”’结束的 ”’ These lines are comments. You can write multiple lines here. xxxxxxx ”’ 行末 : 符号 在if, elif, else, for, def, class等关键字行的行末应加上:, 否则会报语法错误。 缩进 Python用的是4个空格作为缩进,作用域也不用花括号括起来,而是通过缩进来判断: class TestClass(): def test_func(): # 4个空格缩进,表示在TestClass范围内 if True: […]

Python3学习笔记 – 准备环境

Python3学习笔记 – 准备环境

前言 最近乘着项目不忙想赶一波时髦学习一下Python3。由于正好学习了Docker,并深深迷上了Docker,所以必须趁热打铁的用它来创建我们的Python3的开发测试环境。Python3的中文教程是参考了廖雪峰的官方网站,教程非常详细,一步步照着学习就行了,我在自己的文章中就尽量不重复了。我会在自己后续的文章中会结合一些实例来学习Python3。 环境介绍 系统:Centos 7.4 编辑器:Vim 工具:Docker CE v17.09.0 & Docker Compose v1.17.0 Python版本:Docker官方Python3镜像 关于Docker CE和Docker Compose的部署,可以参考我另外一篇博客Centos7.4下用Docker-Compose部署WordPress中相关部分 安装Python3容器 创建文件夹和Docker Compose脚本 先创建以下用作测试的文件夹: $ cd /usr/ && sudo mkdir python-test && cd python-test/ 创建名为docker-compose.yml的配置文件: $ sudo vim docker-compose.yml 以下是docker-compose.yml中的内容: version: ‘3’ services: python3: image: python:3 container_name: python3 volumes: – /usr/python-test/my-test-scripts:/usr/src/myapp working_dir: /usr/src/myapp […]