Board logo

标题: 深度学习 [打印本页]

作者: happyfan    时间: 2017-4-22 15:06     标题: 深度学习

最流行的4个机器学习数据集
http://www.jianshu.com/p/be23b3870d2e

          机器学习算法需要作用于数据,而数据的本质则决定了应用的机器学习算法是否合适,而数据的质量也会决定算法表现的好坏程度。所以会研究数据,会分析数据很重要。本文作为学习研究数据系列博文的开篇,列举了4个最流行的机器学习数据集。
以上数据集下载地址http://archive.ics.uci.edu/ml/
作者: happyfan    时间: 2017-4-22 15:11

http://www.cnblogs.com/taichu/p/5251332.html
IRIS数据集的分析-数据挖掘和python入门-零门槛
初步体验libsvm用法3(matlab实例)
http://www.cnblogs.com/tornadome ... /06/04/2534939.html
作者: happyfan    时间: 2017-4-29 01:06

https://kaonashi-tyc.github.io/2017/04/06/zi2zi.html
风格迁移,对于汉字的风格变化
作者: happyfan    时间: 2017-4-29 01:08

https://github.com/kaonashi-tyc/Rewrite
源文件代码,自己可以来跑一遍吧。
作者: happyfan    时间: 2017-5-3 13:10

http://www.paddlepaddle.org/cn/index.html
百度开源深度学习
作者: happyfan    时间: 2017-5-3 23:41

http://www.cnblogs.com/zhuhou/p/6567689.html
http://blog.csdn.net/xie674952820/article/details/67632110
paddle 的使用
作者: happyfan    时间: 2017-5-4 12:23

百度开源深度学习框架PaddlePaddle安装配置(单机CPU版)
http://blog.csdn.net/huludan/article/details/52661685


一、环境配置

PC机一台+Windows 7 Homebasic 系统


二、过程

1、安装Ubuntu14.04.1 64位双系统

如果你的PC机是windows系统,建议安装Linux双系统,以下以安装Ubuntu14.04.164位系统为例(这个版本比较稳定,众多软件支持,Paddle的三种安装方式都可以在Ubuntu14.04.1  64位系统上安装),如过你的系统是Linux系统,请直接转到 2)

1)请参考本人博文:windows7安装ubuntu双系统

2)安装完Ubuntu14.04.1后的一些常用软件的安装和配置可以参考本人其他博文:

安装搜狗输入法、Chrome、过滤讨厌的网页广告等:点我查看详细介绍

3)安装Anaconda和Pycharm:点我查看详细介绍;使用Python做实验,推荐安装Anaconda+Pycharm(Windows,MacOS X,Linux),Anaconda集合了Python2.7、Python3、常用的科学计算包,避免浪费时间精力安装配置各种python包,连环境变量都是安装过程自动配置的,你要做的就是点击“下一步”;Pycharm是一个出色的pythonIDE,使用过程中慢慢体会吧

4)安装Linux下看PDF的利器Okular和小巧好用的截图录屏工具Kazam:点我查看详细介绍



2、使用Docker安装PaddlePaddle

PaddlePaddle提供了三种安装方式(点我查看详细介绍):Build from source code、Docker installation、Debian Package installation,推荐使用Docker安装(不用做任何配置,目前Docker对于我这种小白来说,最大的好处是,避免安装软件时做繁琐编译、配置等操作,不利之处可能是不便于开发和调试),我尝试了上述三种方式,只有Docker顺利完成了,其他两种方式多多少少出现了一些尚未解决的问题

1)在Ubuntu14.04.1上通过清华大学的镜像安装Docker:点我查看详细参考;

2)安装完后在命令行键入sudo service docker start和sudo docker run hello-world,验证Docker正确安装;

3)正确安装后键入curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sudo sh -s http://92aa3454.m.daocloud.io,修改Docker下载源(本文中的http://92aa3454.m.daocloud.io已经失效,读者可以到daocloud官网(点我进入)注册获取一个新的免费加速器),加快Docker下载Paddle的速度;

4)修改Docker下载源后,在命令行键入sudo service docker restart,重启Docker

5)在命令行键入sudo docker run -it paddledev/paddle:cpu-latest 开始下载安装Docker,由于网络环境不同,下载速度会有所差异,等待Paddle docker的下载和安装

6)安装完成后,你会发现命令行发生变化了,变成了root@e1f3456e7992:/#,OK,安装成功


3、运行一个PaddlePaddle的Demo

我们以自然语言处理中的语义角色标注为例,参考文档和论文:点我查看论文原文 点我查看实验文档

1)首先,从github上将paddle项目拉取到本地,或者从github上直接下载项目的zip压缩包:点我进入PaddlePaddle github项目

Git拉取:在命令行键入:git clone --recursive https://github.com/baidu/Paddle.git

下载zip压缩包:项目页面右上角“Clone or download”——“Download ZIP”

2)在本地使用Pycharm打开Paddle项目,进入Paddle/demo/semantic_role_labeling/data

3)在命令行键入 bash ./get_data.sh 下载实验数据

4)启动paddle的docker镜像

在命令行键入 sudo docker run -it paddledev/paddle:cpu-latest

5)在命令行键入 mkdir /home/code 新建文件夹用于挂载宿主机上的paddle项目

在命令行键入 exit 退出docker

6)将宿主机上的Paddle项目挂载到Paddle Docker镜像里来运行

sudo docker run -it -v /home/huludan/PycharmProjects/Paddle:/home/code paddledev/paddle:cpu-latest

7)进入docker后,在命令行键入 cd /home/code/demo/semantic_role_labeling 进入训练脚本所在文件夹

在命令行键入 bash ./train.sh 开始训练模型,由于是单机CPU来跑,网络深度大,结构复杂,这个时间会稍长
作者: happyfan    时间: 2017-5-4 14:11

http://www.cnblogs.com/IPrograming/p/Linux_Basic_BASH.html
Bash操作
作者: happyfan    时间: 2017-5-4 15:19

本文知乎链接:
强烈推荐的机器学习,深度学习课程以及python库

本着两条原则发一波车:

1.不建议报辅导班。不是因为我们不应该为学习知识付费, 而是因为有更好的资源,而这些资源恰好免费。报辅导班学习浪费钱倒是次要的,主要是时间有限,所以我们要把最好的时间集中在最高效的事情上。

2.视频资源种类繁多,但我只推荐最好的。就像这世界有那么多种车,而我只开最适合自己的自行车(穷)

Are you ready?

以下课程均有中文字幕:

1.机器学习

机器学习视频我推荐大神Andrew Ng的课程:

https://www.coursera.org/learn/machine-learning/home/welcome

Andrew Ng的课程有两个版本,一个是斯坦福大学的公开课,一个是coursera上的课程。我更建议后者。首先是在couresa上讲,Andrew Ng面对的是所有在线的听众,这样自己听课就会有一种带入感,仿佛就在课堂一样,而听斯坦福大学公开课的那个版本自己听起来更像一个旁听生。其次是在couresa上作业,课件齐全,不用再到其他的地方找,减少很多麻烦。

2.深度学习

深度学习我推荐李飞飞团队主讲的《深度学习与计算机视觉》:

斯坦福CS231n-深度学习与计算机视觉 - 网易云课堂

课件下载:

amazingzby/cs231n

剧透一丢丢:第一节李飞飞讲课时怀着孩子,所以只能坐着讲课,但课程内容依然interesting 。

3.推荐个与机器学习,深度学习不相关的课程,Jerry Cain讲的《编程范式》,我只听过前几节,感觉超级赞,就推荐给大家了

斯坦福大学公开课:编程范式_全27集_网易公开课

OK!第一波已经结束,来第二波

介绍几款常用的Python库:

1.numpy

NumPy - NumPy

处理数组,矩阵非常有效的库,不会numpy,学后面的白搭。

2.matplotlib

python plotting - Matplotlib 1.5.3 documentation

数据可视化(其实就是画图,直方图,折线图,饼状图等等)必备。

3.pandas

Python Data Analysis Library

pandas主要用于清洗数据,如果输入数据不那么规范(比如有数据丢失或有无效数字),用pandas处理会非常方便。

4.sklearn

http://scikit-learn.org/

机器学习必备

5.tensorflow

https://www.tensorflow.org/

这个不解释,老司机都懂的!

今天就先开到这里,下车前记得刷卡~
作者: happyfan    时间: 2017-5-4 16:04

PaddlePaddle的Docker容器使用方式

PaddlePaddle目前唯一官方支持的运行的方式是Docker容器。因为Docker能在所有主要操作系统(包括Linux,Mac OS X和Windows)上运行。 请注意,您需要更改 Dockers设置 才能充分利用Mac OS X和Windows上的硬件资源。
PaddlePaddle发布的Docker镜像使用说明

我们把PaddlePaddle的编译环境打包成一个镜像,称为开发镜像,里面涵盖了 PaddlePaddle需要的所有编译工具。把编译出来的PaddlePaddle也打包成一个镜 像,称为生产镜像,里面涵盖了PaddlePaddle运行所需的所有环境。每次 PaddlePaddle发布新版本的时候都会发布对应版本的生产镜像以及开发镜像。运 行镜像包括纯CPU版本和GPU版本以及其对应的非AVX版本。我们会在 dockerhub.com 提供最新 的Docker镜像,可以在"tags"标签下找到最新的Paddle镜像版本。为了方便在国 内的开发者下载Docker镜像,我们提供了国内的镜像服务器供大家使用。如果您 在国内,请把文档里命令中的paddlepaddle/paddle替换成 docker.paddlepaddle.org/paddle。

    开发镜像:paddlepaddle/paddle:<version>-dev

    这个镜像包含了Paddle相关的开发工具以及编译和运行环境。用户可以使用开发镜像代替配置本地环境,完成开发,编译,发布, 文档编写等工作。由于不同的Paddle的版本可能需要不同的依赖和工具,所以如果需要自行配置开发环境需要考虑版本的因素。 开发镜像包含了以下工具:
        gcc/clang
        nvcc
        Python
        sphinx
        woboq
        sshd

    很多开发者会使用远程的安装有GPU的服务器工作,用户可以使用ssh登录到这台服务器上并执行 :code:`docker exec`进入开发镜像并开始工作, 也可以在开发镜像中启动一个SSHD服务,方便开发者直接登录到镜像中进行开发:

    以交互容器方式运行开发镜像:

    docker run -it --rm paddlepaddle/paddle:<version>-dev /bin/bash

    或者,可以以后台进程方式运行容器:

    docker run -d -p 2202:22 -p 8888:8888 paddledev/paddle:<version>-dev

    然后用密码 root SSH进入容器:

    ssh -p 2202 root@localhost

    SSH方式的一个优点是我们可以从多个终端进入容器。比如,一个终端运行vi,另一个终端运行Python。另一个好处是我们可以把PaddlePaddle容器运行在远程服务器上,并在笔记本上通过SSH与其连接。

    生产镜像:根据CPU、GPU和非AVX区分了如下4个镜像:
        GPU/AVX:paddlepaddle/paddle:<version>-gpu
        GPU/no-AVX:paddlepaddle/paddle:<version>-gpu-noavx
        CPU/AVX:paddlepaddle/paddle:<version>
        CPU/no-AVX:paddlepaddle/paddle:<version>-noavx

    纯CPU镜像以及GPU镜像都会用到AVX指令集,但是2008年之前生产的旧电脑不支持AVX。以下指令能检查Linux电脑是否支持AVX:

    if cat /proc/cpuinfo | grep -i avx; then echo Yes; else echo No; fi

    如果输出是No,就需要选择使用no-AVX的镜像

    以上方法在GPU镜像里也能用,只是请不要忘记提前在物理机上安装GPU最新驱动。 为了保证GPU驱动能够在镜像里面正常运行,我们推荐使用[nvidia-docker](https://github.com/NVIDIA/nvidia-docker)来运行镜像。

    nvidia-docker run -it --rm paddledev/paddle:0.10.0rc1-gpu /bin/bash

    注意: 如果使用nvidia-docker存在问题,你也许可以尝试更老的方法,具体如下,但是我们并不推荐这种方法。:

    export CUDA_SO="$(\ls /usr/lib64/libcuda* | xargs -I{} echo '-v {}:{}') $(\ls /usr/lib64/libnvidia* | xargs -I{} echo '-v {}:{}')"
    export DEVICES=$(\ls /dev/nvidia* | xargs -I{} echo '--device {}:{}')
    docker run ${CUDA_SO} ${DEVICES} -it paddledev/paddle:<version>-gpu

    运行以及发布您的AI程序

    假设您已经完成了一个AI训练的python程序 a.py,这个程序是您在开发机上使用开发镜像完成开发。此时您可以运行这个命令在开发机上进行测试运行:

    docker run -it -v $PWD:/work paddle /work/a.py

    如果要使用GPU,请运行:

    nvidia-docker run -it -v $PWD:/work paddle /work/a.py

    这里`a.py`包含的所有依赖假设都可以在Paddle的运行容器中。如果需要包含更多的依赖、或者需要发布您的应用的镜像,可以编写`Dockerfile`使用`FROM paddledev/paddle:<version>` 创建和发布自己的AI程序镜像。

运行PaddlePaddle Book

Jupyter Notebook是一个开源的web程序,大家可以通过它制作和分享带有代码、公式、图表、文字的交互式文档。用户可以通过网页浏览文档。

PaddlePaddle Book是为用户和开发者制作的一个交互式的Jupyter Nodebook。 如果您想要更深入了解deep learning,PaddlePaddle Book一定是您最好的选择。

我们提供可以直接运行PaddlePaddle Book的Docker镜像,直接运行:

docker run -p 8888:8888 paddlepaddle/book

然后在浏览器中输入以下网址:

http://localhost:8888/

就这么简单,享受您的旅程!
通过Docker容器开发PaddlePaddle

开发人员可以在Docker开发镜像中开发PaddlePaddle。这样开发人员可以以一致的方式在不同的平台上工作 - Linux,Mac OS X和Windows。

    制作PaddlePaddle开发镜像

    PaddlePaddle每次发布新版本都会发布对应的开发镜像供开发者直接使用。这里介绍如生成造这个开发镜像。 生成Docker镜像的方式有两个,一个是直接把一个容器转换成镜像,另一个是创建Dockerfile并运行docker build指令按照Dockerfile生成镜像。第一个方法的好处是简单快捷,适合自己实验,可以快速迭代。第二个方法的好处是Dockerfile可以把整个生成流程描述很清楚,其他人很容易看懂镜像生成过程,持续集成系统也可以简单地复现这个过程。我们采用第二个方法。Dockerfile位于PaddlePaddle repo的根目录。生成生产镜像只需要运行:

    git clone https://github.com/PaddlePaddle/Paddle.git
    cd Paddle
    docker build -t paddle:dev .

    docker build这个命令的-t指定了生成的镜像的名字,这里我们用paddle:dev。到此,PaddlePaddle开发镜像就被构建完毕了。

    制作PaddlePaddle生产镜像

    生产镜像的生成分为两步,第一步是运行:

    docker run -v $(pwd):/paddle -e "WITH_GPU=OFF" -e "WITH_AVX=OFF" -e "WITH_TEST=ON" paddle:dev

    以上命令会编译PaddlePaddle,生成运行程序,以及生成创建生产镜像的Dockerfile。所有生成的的文件都在build目录下。“WITH_GPU”控制生成的生产镜像是否支持GPU,“WITH_AVX”控制生成的生产镜像是否支持AVX,”WITH_TEST“控制是否生成单元测试。

    第二步是运行:

    docker build -t paddle:prod -f build/Dockerfile ./build

    以上命令会按照生成的Dockerfile把生成的程序拷贝到生产镜像中并做相应的配置,最终生成名为paddle:prod的生产镜像。

    运行单元测试

    运行以下指令:

    docker run -it -v $(pwd):/paddle paddle:dev bash -c "cd /paddle/build && ctest"

文档

Paddle的Docker开发镜像带有一个通过 woboq code browser 生成的HTML版本的C++源代码,便于用户浏览C++源码。

只要在Docker里启动PaddlePaddle的时候给它一个名字,就可以再运行另一个Nginx Docker镜像来服务HTML代码:

docker run -d --name paddle-cpu-doc paddle:<version>-dev
docker run -d --volumes-from paddle-cpu-doc -p 8088:80 nginx

接着我们就能够打开浏览器在 http://localhost:8088/paddle/ 浏览代码。
作者: happyfan    时间: 2017-5-4 20:46

http://www.ddaayy.com
HIBOP:基于深度学习的手写笔迹鉴别
作者: happyfan    时间: 2017-5-4 20:54

https://html5up.net/
html5模板网站
作者: happyfan    时间: 2017-5-5 14:28

http://news.ifeng.com/a/20170503/51040517_0.shtml
机器人作曲

最后送上 Siraj 的原始视频和源代码链接:

视频:https://www.youtube.com/watch?v=ZE7qWXX05T0&t=278s

源代码:https://github.com/llSourcell/Mu ... aster/rbm_chords.py
作者: happyfan    时间: 2017-5-5 14:31

http://www.tensorfly.cn/
tensorflow中文站
作者: happyfan    时间: 2017-5-5 14:50

Anaconda具有跨平台、包管理、环境管理的特点,因此很适合快速在新的机器上部署Python环境。总结而言,整套安装、配置流程如下:

    下载Anaconda、安装
    配置PATH(bashrc或环境变量),更改TUNA镜像源
    创建所需的不用版本的python环境
    Just Try
作者: happyfan    时间: 2017-5-5 15:16

杀死所有正在运行的容器
复制代码 代码如下:
docker kill $(docker ps -a -q)

删除所有已经停止的容器
复制代码 代码如下:
docker rm $(docker ps -a -q)

删除所有未打 dangling 标签的镜像
复制代码 代码如下:
docker rmi $(docker images -q -f dangling=true)

删除所有镜像
复制代码 代码如下:
docker rmi $(docker images -q)

为这些命令创建别名
复制代码 代码如下:
# ~/.bash_aliases

# 杀死所有正在运行的容器.
alias dockerkill='docker kill $(docker ps -a -q)'

# 删除所有已经停止的容器.
alias dockercleanc='docker rm $(docker ps -a -q)'

# 删除所有未打标签的镜像.
alias dockercleani='docker rmi $(docker images -q -f dangling=true)'

# 删除所有已经停止的容器和未打标签的镜像.
alias dockerclean='dockercleanc || true && dockercleani'

另附上docker常用命令

docker version #查看版本

docker search tutorial#搜索可用docker镜像

docker pull learn/tutorial #下载镜像

docker run learn/tutorial echo "hello word"#在docker容器中运行hello world!

docker run learn/tutorial apt-get install -y ping#在容器中安装新的程序

保存镜像

首先使用docker ps -l命令获得安装完ping命令之后容器的id。然后把这个镜像保存为learn/ping。
提示:
1.运行docker commit,可以查看该命令的参数列表。
2.你需要指定要提交保存容器的ID。(译者按:通过docker ps -l 命令获得)
3.无需拷贝完整的id,通常来讲最开始的三至四个字母即可区分。(译者按:非常类似git里面的版本号)
正确的命令:
docker commit 698 learn/ping

运行新的镜像

docker run lean/ping ping www.google.com

检查运行中的镜像

现在你已经运行了一个docker容器,让我们来看下正在运行的容器。
使用docker ps命令可以查看所有正在运行中的容器列表,使用docker inspect命令我们可以查看更详细的关于某一个容器的信息。
目标:

查找某一个运行中容器的id,然后使用docker inspect命令查看容器的信息。
提示:

可以使用镜像id的前面部分,不需要完整的id。
正确的命令:
docker inspect efe

ps目前还在开发阶段,不建议部署到生产环境中,继续观望中。。。
作者: happyfan    时间: 2017-5-5 16:22

https://yq.aliyun.com/articles/60601
基于Docker的Tensorflow实验环境
在阿里云上
作者: happyfan    时间: 2017-5-5 16:29

http://www.open-open.com/lib/view/open1487579427487.html
基于Docker的TensorFlow机器学习框架搭建和实例源码解读
作者: happyfan    时间: 2017-5-5 17:22

http://www.leiphone.com/news/201606/ORlQ7uK3TIW8xVGF.html
真正从零开始,TensorFlow详细安装入门图文教程!


门牌号数据集
http://ufldl.stanford.edu/housenumbers/
作者: happyfan    时间: 2017-5-5 17:22

Python默认编码错误SyntaxError: Non-ASCII character '\xe5'之解决方法
在编写Python时,当使用中文输出或注释时运行脚本,会提示错误信息:
SyntaxError: Non-ASCII character '\xe5' in file *******

解决方法:
python的默认编码文件是用的ASCII码,你将文件存成了UTF-8!!!(文件中存在中文或者其他语言,就会出现此问题!)
解决办法很简单!!!
在文件开头加入:
# -*- coding: UTF-8 -*-    或者  #coding=utf-8

(注:此语句一定要添加在源代码的第一行)

作者: happyfan    时间: 2017-5-6 01:55

http://old.sebug.net/paper/books/scipydoc/index.html
用Python做科学计算
作者: happyfan    时间: 2017-5-6 02:34

http://www.leiphone.com/news/201702/n0uj58iHaNpW9RJG.html

从系统和代码实现角度解析TensorFlow的内部实现原理 | 深度

利用了符号编程
作者: happyfan    时间: 2017-5-6 23:38

mario klinggermann
代码艺术家

http://www.rebelmouse.com/quasimondo
http://twitter.com/quasimondo
http://www.flickr.com/photos/quasimondo
http://mario-klingemann.tumblr.com

Sometimes I'm adding new stuff to the Incubator:
http://incubator.quasimondo.com
作者: happyfan    时间: 2017-5-6 23:48

three.js是JavaScript编写的WebGL第三方库。提供了非常多的3D显示功能。
 D3.js是一个数据可视化的库,看看他们的DEMO就可以知道,技术基础是SVG。兼容性是IE9+。
  webgl是HTML5中提出的新技术,是一种3D绘图标准,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,关于它的教程可以看看hiwebgl。目前兼容性堪忧
  three.js是以webgl为基础的库,封装了一些3D渲染需求中重要的工具方法与渲染循环。它的教程同样可以在hiwebgl里面找到。
  three.js之于webgl,类似于windows版本的虚幻引擎之于D3D。当然,虚幻引擎的能力范围比three.js大得多。d3.js跟上面两者没有关系。
作者: happyfan    时间: 2017-5-7 00:41

Pix2pix是一个全新的工具,旨在允许任何类型的图像变换的应用程序无关的训练。所需要的是包含图像对A和B的数据集,并且可以训练网络以变换到任一方向。可能的应用包括着色,分割,线图画到图像,映射到卫星视图,风格化等。操作在两个方向上工作,因此通过正确训练的网络,可以从地图或从彩色分割的建筑立面生成合理的卫星视图。

根本停不下来!给个轮廓,TensorFlow还你一只完整喵
http://bigdatadigest.baijia.baidu.com/article/780403
作者: happyfan    时间: 2017-5-7 00:45     标题: 黄仁勋对人工智能的6个总结:GPU怎样催化AI计算

一、4年以前,AlexNet第一次带来了深度学习的爆发

  2012年一个年轻的研究员叫Alex Krizhevsky。在多伦多大学AI实验室,他设计了一个可以学习的软件,这个软件靠自己就能进行视觉识别。深度学习这个时候已经发展了一段时间,可能有20年。

  Alex所设计的这个网络,它有一层一层的神经网络,包括卷积神经网络、激发层、输入和输出,可以进行区分。这样一个神经网络可以学会识别影像或者是规律。深层神经网络所带来的结果是它会非常有效,会超出你的想象,但是它进行训练需要的计算资源超过了现代计算机的能力,它需要几个月的时间去训练一个网络才能真正地识别图像。

  Alex当时的看法是,有一个叫做GPU的新型处理器,通过一种叫CUDA的计算模式,可以适用于并行计算,用于非常密集的训练。2012年他当时设计了叫Alex的网络,提交给了一个大规模计算视觉识别大赛,是一个全球的竞赛,并且赢得了这个大赛。

  AlexNet战胜了所有由其他计算视觉专家所开发的算法。Alex当时只用两个NVIDIA GTX580,在通过数据训练了几天后,AlexNet的结果和质量引起关注。所有搞计算视觉的科学家,所有的AI科学家都非常关注。在2012年,Alex Krizhevsky启动了计算机深度学习的基础,这是现代AI的一个大爆炸。他的工作和成果在全世界引起了很大反响。

  我相信那个时刻会被记住,因为它确实改变了世界。之后有很多研究开始围绕深度学习进行。2012年斯坦福大学的吴教授(吴恩达)和我们开发了一个非常大规模的GPU配置用于深度学习的训练,很快在三年之后每一年都会有新的网络出来,能够不断地战胜其他方案获得更好的记录。

  二、声音和视觉输入铺垫了构造AI世界的基础

  到了2015年,谷歌和微软都实现了人类般的视觉识别能力。它是由软件写就的,在GPU上经过训练可以实现比人类更高的视觉识别能力。2015年百度也宣布他们的语音识别达到了超越人类的水平,这是非常重要的一个事件。这是第一次计算机能自己写程序,实现超过人类的水平。

  视觉和语音是两个非常重要的感官输入,是人类智能的基础。现在我们已经有了一些基础的支柱,让我们能够进一步推进AI的发展,这在之前是难以想象的。如果声音和视觉的输入值不可靠的话,怎么能够有机器可以去学习,可以有人类一样的行为。我们相信这个基础已经有了,这也是为什么我们认为现在是AI时代的开始。

  全世界的研究者都看到了这些结果,现在所有的AI实验室都开始使用GPU跑深度学习,这样他们也可以开始建立未来AI的基础。基本上所有的AI研究者都开始用我们的GPU。

  GPU的核心是模拟物理世界,我们用GPU创建虚拟世界用于游戏、设计,用于讲故事,比如制作电影。模拟环境、模拟物理属性、模拟周围所看到的世界,构建虚拟世界的过程如同人类大脑在想象时进行的计算。因为深度学习的发展,使我们的工作进入新的阶段,人工智能。对人类智能的模拟会是我们所做的最重要的工作之一,而且我们对此非常激动。

  三、GPU计算渗透到深度学习各个领域

  今天也是我们第一次在中国举办GTC大会,这次很大一部分内容会是关于人工智能和深度学习。我们是一个计算公司,SDK对于我们来讲是最重要的产品,GTC是我们最重要的一场盛会。大家可以看一下过去几年的成长,这是非常了不起的增速。

  今年GTC有16000名人员参加。下载我们SDK的开发人员增长了3倍,达到了40万开发人员。但最了不起的数字是深度学习开发人员在两年之内有了25倍的增长,现在下载我们的深度神经网络实验室引擎的开发人员已经增长了25倍,下载了5万5千次。

  大家到底用它干什么呢?很多都是AI研究人员,他们来自于全球各地,现在所有的实验室都会使用我们的GPU平台来做自己的AI研究,有软件公司、互联网软件提供商,还有互联网公司、汽车公司、政府、医疗成像、财务、制造等公司。现在用GPU深度学习的领域是非常广的,非常了不起的。

  四、大脑的运作就像GPU的计算

  大家要问为什么AI研究人员选择GPU,Alex他们发现GPU的并行运算实际是非常符合深度学习网络的计算特征。那么进一步来讲,为什么GPU对深度学习来讲是非常适合的工具呢?我想给大家讲一个不是那么严肃的例子说明一下为什么GPU非常重要。

  大脑就像一个GPU。比如我让大家想象乒乓球,大家闭上眼睛,你们大脑会形成一个几个人打乒乓球的图像,如果让大家想象功夫熊猫,那么脑子里会出现是类似的功夫熊猫图像。所以我们的大脑在思考时会生成一些图片。反过来,GPU的构架也像大脑一样,它不是由一个处理器进行序列的运算,我们的GPU有上千个处理器,非常小的处理器组合在一起来共同解决问题,这上千个处理器会进行数学计算、互相连接、分享信息,最终能够解决一个很大的问题,就好像是我们的大脑一样。所以说大脑就像GPU,因为大脑可以产生图片,而GPU也像人的大脑一样,所以有可能这种新的计算模式、新的计算模型可以解决虚拟现实的问题,它确实是非常适合GPU的。

  深度学习是一种新的计算模式,它会涉及软件的方方面面。深度学习首先要设计一个网络并且对网络进行训练,针对一个网络的训练需要几十亿甚至更多的操作,涉及上百万甚至有更多的数据,通过这些数据对网络进行训练,需要很长的时间。如果没有一个GPU,这个过程可能需要好几个月,但GPU把这个时间压缩到几天内,这也是为什么GPU能够帮助大家更好地解决问题。

  五、寻找比摩尔定律进化得更快的计算模式

  训练是深度学习的一个基础,这个网络有了之后,你希望运用这个网络来进行预测,进行推理,进行归类,要对一个信息进行推理,比如有几十亿人每天在网上问很多的问题,有可能是图片,文字,语音,将来有可能是视频这种形式。在数据中心当中GPU推理能够非常快地响应。所以深度学习的第一部分是训练,第二部分是推理。

  深度学习的第三部分,有些人叫IoT,智能设备、智能终端,也许是摄像头、汽车、机器人,也许是话筒,这样互联设备就变成了智能设备。物联网需要有AI进行驱动,需要深度神经网络进行驱动,大量的智能终端根本目标是需要去识别去归类进行交互,要快要准确,并且尽量在低功耗状态下实现所有这些功能。

  在接下来这些时间,软件的开发会和以前不一样,我们运行软件的方法也会不一样,在上面的运算也会不一样,很多设备上要运行什么东西会不一样,所以深度学习将会影响到到计算的各个方面。

  现在我们看一下训练,首先我们应该意识到训练的复杂性。前面提到了训练可能是几十亿甚至万亿的运算,模型越大数据越多,结果就会越准确,数据多,加上大模型、大的计算量将会带来深度学习更好的结果,这是非常根本的、非常重要的。

  微软有一个叫ResNet的识别网络,如果跟AlexNet比较,AlexNet神经网络是8层,总计算量是1.4G的浮点运算,错误率是16%。8层和1.4G,错误率是16%,意味着什么?这是当时最好的。当时计算视觉专家研发的算法大部分错误率可能比16%更高,这说明用传统计算视觉方式的局限性很大,准确率没有那么高。

  如果通过深度学习,我们在过去几年中可以实现3.5%的错误率,3.5%这是在几百万的图像当中进行测试152层的一个网络,几年之前只有8层,现在是152层,总共的计算能力是22.6G/flps,这是18倍的增长,这就表明了深度学习存在的问题。三年之内深度学习的计算负载增长了18倍,这比摩尔定律快很多。

  所以问题变得越来越复杂,越来越难,但是计算的能力却没有相应速度的增长,这也是为什么整个行业都开始寻找新的计算模式,为他们都开始来考虑使用GPU计算。

  另一个案例更加惊人,是关于语音识别。语音识别是自然语言理解的基础,自然语言理解也是智能的基础。这是百度吴恩达的实验室的工作,2014年有2500万的参数在这个模型当中,训练的材料是7000小时的语料8%的错误率。2015年的训练数据是此前的2倍,深度学习网络是原来的4倍大,2倍的数据量,4倍的网络复杂性,实现的错误率是5%,就在1年之内百度的DPS错误率降至了40%左右。但是需要付出什么样的代价?就是计算量的增长。

  深度学习的方法花了这么长的时间才真正出现,因为这样的方法从计算条件来说是没有办法实现的,此前没有任何计算机可以对这样的网络进行训练,直到GPU出现用于深度学习的出现。这是我讲的为什么我们对这样新的计算模式非常振奋,为什么现在在我们这个计算行业当中这个时刻非常重要。

  同时这个趋势在未来还会继续,大家要记住我们现在还是5%的错误率,我们希望是0%的错误率。每个人的声音都可以被识别,甚至是做得更好,可以去理解词的语义,所以我们还有很多更大的计算需求。

  六、AI会自上而下地改变计算系统

  Pascal是我们针对深度学习进行优化的GPU架构。Pascal的处理器是真正的奇迹,Pascal是一个全新的架构,用立体的晶体管制成,用立体的封装,用3D的堆栈,所有这些使得我们的Pascal架构实现了巨大的性能提升,新的指令级和新的制造制成、新的封装方式,以及新的互联连接方式把多个GPU连到一起,这样它们可以做一个团队来开展工作。我们花了3年的时间,1万个人年的投入,完成了这项我们自己史上最大的工作。

  我们也认识到处理器还只是开始。在AI计算这块有这样一个新的计算模式,计算系统架构也会发生变化,处理器的设计会发生变化,算法会发生变化,我们开发软件的方式会发生变化,系统的设计也会发生变化。

  我们有一个新的超级计算机,在一个盒子的大小之内,这就是叫DGX-1,替代了大约250台服务器,整个数据中心都缩成了一个小盒子的大小。这个超级计算机完全是重新设计的。看一下我们处理器的成就再加上DGX-1,使得我们在一年之内的性能有65倍的提高。相比较这个Alex第一次用我们GPU来训练他的网络的时候,这是65倍的提高。这比摩尔定律的速度要快很多,比整个半导体的发展要快很多,比任何其他的在计算的进步方面要快很多。
作者: happyfan    时间: 2017-5-8 17:06

AI是怎么让机器学会涂鸦的?
时间 2017-05-05 14:49:06 Google黑板报
原文
  http://blog.sina.com.cn/s/blog_9c079b040102yfzb.html
主题 数据挖掘

在 Google,AI 和机器学习绝不仅仅是“高冷”的实验和冗杂的数据。去年,来自Google AI 实验室的一群脑洞巨大的科研人员已经证明了这一点:他们用 AI 唱 Rap,识别实物,编写旋律,构建可视化高维空间...

在这些奇奇怪怪却很有意思的“小玩意儿”之中,有一个 AI 版的“你画我猜”:QuickDraw。AI 会给你一个涂鸦主题,在你作画的过程中 AI 将不断地识别和猜测你画了什么,直到得出正确答案,或是 20 秒倒计时结束。



而在不久之前,Google 又推出了功能更加实用的“你画我猜”升级版 AutoDraw,可智能识别涂鸦内容并进行完善。有了它,就连“灵魂画手”也能画出一手好画啦:

涂鸦是人们对事物的抽象视觉表达。AI 和机器学习技术似乎使机器学会了“看懂”和“理解”涂鸦内容,但这似乎还远远不够。比如,要如何让机器学会自行生成涂鸦呢?

其实,在此之前,科研人员已在机器生成图像的领域做了大量的工作。这是一项非常有难度的研究,其过程中不乏产生一些十分“魔性”的成品:

近期,来自 Google 的科研人员们在论文《简笔画绘图的神经表征》(A Neural Representation of Sketch Drawings) 中,让教会机器绘画成为了可能。

科研人员们受人类绘画过程的启发,降低维度,通过用大量的手绘涂鸦来组成数据集训练模型,训练机器来理解人们在绘制涂鸦时是在何时起笔、走笔方向、何时停笔。经过训练的模型在接收一张人手绘的涂鸦后可以生成一张同主题的新涂鸦:

用“猫”为主题的涂鸦训练的模型重建的猫涂鸦

是不是看起来就只是把人的涂鸦重复了一遍?但事情可没有是这么简单!

实际上,模型生成的新涂鸦的确不是简单地重复了人的绘画,而是对图像的本质进行了分析和理解的。为证明模型确实是学会了人类画猫的一些技巧,可以尝试输入一些故意犯了一些小错误的涂鸦:

在收到故意被画成三只眼的小猫涂鸦后,模型输出了一个轮廓类似的新涂鸦,其中“三只眼”的错误已被修正。这说明经训练的模型已经理解了“猫”涂鸦的特征,理解了这个抽象概念,进而将这个抽象概念正确地表达出来。

同样,用大量小猪涂鸦训练的模型也能达到类似的效果。输入人类绘制的小猪涂鸦,也能得到一个新的、有着相近轮廓的小猪涂鸦:

可以看到,模型将第一行中八条腿的小猪涂鸦修正成了四条腿。而若是输入一张卡车涂鸦,模型则会遵从对“小猪”这个抽象概念的理解,输出一只长得像卡车的小猪!

一千个人会画出一千个不同的小猪涂鸦,比如下图绿框中的猪头和橙色框中的整猪。模型又是如何理解同一抽象概念的不同表达的呢?模型中,只有头的涂鸦各部位尺寸被一步步调整,再加上了身子,最终过度到一只完整的小猪。

科研人员还发现,模型的确对不同的涂鸦进行了类比。比如,将“身体”部分进行类比,为猫头涂鸦加上加上身子,或是将完整是小猪涂鸦中的身体去掉,剩下猪头涂鸦:

对于人类来说,涂鸦作为一种高度概括的抽象概念,在人们进行交流、表达情感的过程中起着很大的作用。让机器学会涂鸦的研究,其意义不仅在于探索机器如何对抽象概念进行理解。或许在不久的将来,这些模型将会协助艺术家进行创作,或是成为辅导人们学习绘画!
作者: happyfan    时间: 2017-5-8 17:12

http://www.tuicool.com/articles/VNZz6jj
杨强教授漫谈《西部世界》、生成式对抗网络及迁移学习

各种对抗神经网络(GAN)大合集
时间 2017-05-08 11:25:15 Github
原文
  https://github.com/YadiraF/GAN
作者: happyfan    时间: 2017-5-9 21:35

http://blog.csdn.net/sb19931201/article/details/53648615
Win10 TensorFlow(gpu)安装详解
作者: happyfan    时间: 2017-5-9 21:43

https://yq.aliyun.com/articles/60601
基于Docker的Tensorflow实验环境
作者: happyfan    时间: 2017-5-10 00:12

VIM使用
http://www.cnblogs.com/itech/archive/2009/04/17/1438439.html
高手必用吧
作者: happyfan    时间: 2017-5-10 00:32

http://www.cnblogs.com/LinuxSuDa/p/6408364.html
docker 使用 大全
作者: happyfan    时间: 2017-5-10 01:14

 许多Linux用户在安装系统的时候,并没有分配/var 分区,而在安装Docker后才发现,它的默认存放位置是在 /var/lib/docker。因此导致了Docker在运行的很慢
作者: happyfan    时间: 2017-5-10 17:14

http://blog.csdn.net/qq_31494411 ... ionNum=10&fps=1
windows下docker安装tensorflow利用Jupyter编程

命令和之前的差不多
只不过加入了转发接口
这时候在浏览器中输入http://192.168.99.XXX:8888/
根据自己虚拟机的IP来输入即可
作者: happyfan    时间: 2017-5-10 18:26

Docker安装jupyter notebook
时间:2016-03-22来源:cnblogs.com/lutingting/ 作者:纸鸢spring

1.利用image运行一个container

sudo docker run -it --net=host tingting

--net=host:让container可以上网,安装原来的sudo docker run -it tingting方法安装是不能联网的,不知道为什么,加入了--net=host后,container就可以联网了,但不知道还有其他更好的办法不,暂且使用这个方法
tingting:是image的名字


2.在container内安装jupyter notebook

pip install jupyter notebook

jupyter notebook是jupyter的名字


3.commit新的镜像

sudo docker commit --change='CMD jupyter notebook' serene_carson tingtingNew

serene_carson:正在运行的container的名字
tingtingNew:想要保存的新的image的名字


4.利用新的image生成新的container

sudo docker run -it --net=host -v /home/tingting/Dropbox/code/craterDetection/docker:/root/workspace tingtingNew

注:

这里利用-v命令将本地的文件夹与docker中的文件夹关联,其中,/home/tingting/Dropbox/code/craterDetection/docker:为本地文件夹;/root/workspace:为docker中的文件夹;该命令可以将/home/tingting/Dropbox/code/craterDetection/docker文件夹映射到/root/workspace文件夹
tingtingNew为刚刚安装了jupyter notebook的image


5.打开jupyter,利用浏览器输入网址:localhost:8888

注:不知道为什么,本机安装的jupyter地址没法获取,所以这里使用了localhost

如何获取localhost的地址?

打开一个新的terminal,查看container的地址:sudo docker inspect clever_bohr | grep IPAddress

这里的clever_bohr为该正在运行的container的名字,例子如下:

在浏览器中输入:172.17.0.6:8888
作者: happyfan    时间: 2017-5-11 10:18

Ubuntu中的许多操作在终端(Terminal)中十分的快捷,记住一些快捷键的操作更得心应手。在Ubuntu中打开终端的快捷键是Ctrl+Alt+T。其他的一些常用的快捷键如下:
快捷键        功能
Tab         自动补全
Ctrl+a         光标移动到开始位置
Ctrl+e         光标移动到最末尾
Ctrl+k         删除此处至末尾的所有内容
Ctrl+u         删除此处至开始的所有内容
Ctrl+d         删除当前字符
Ctrl+h         删除当前字符前一个字符
Ctrl+w         删除此处到左边的单词
Ctrl+y         粘贴由Ctrl+u, Ctrl+d, Ctrl+w删除的单词
Ctrl+l         相当于clear,即清屏
Ctrl+r         查找历史命令
Ctrl+b         向回移动光标
Ctrl+f         向前移动光标
Ctrl+t         将光标位置的字符和前一个字符进行位置交换
Ctrl+&         恢复 ctrl+h 或者 ctrl+d 或者 ctrl+w 删除的内容
Ctrl+S         暂停屏幕输出
Ctrl+Q         继续屏幕输出
Ctrl+Left-Arrow         光标移动到上一个单词的词首
Ctrl+Right-Arrow         光标移动到下一个单词的词尾
Ctrl+p         向上显示缓存命令
Ctrl+n         向下显示缓存命令
Ctrl+d         关闭终端
Ctrl+xx         在EOL和当前光标位置移动
Ctrl+x@         显示可能hostname补全
Ctrl+c         终止进程/命令
Shift+上或下         终端上下滚动
Shift+PgUp/PgDn         终端上下翻页滚动
Ctrl+Shift+n         新终端
alt+F2         输入gnome-terminal打开终端
Shift+Ctrl+T         打开新的标签页
Shift+Ctrl+W         关闭标签页
Shift+Ctrl+C         复制
Shift+Ctrl+V         粘贴
Alt+数字         切换至对应的标签页
Shift+Ctrl+N         打开新的终端窗口
Shift+Ctrl+Q         管壁终端窗口
Shift+Ctrl+PgUp/PgDn         左移右移标签页
Ctrl+PgUp/PgDn         切换标签页
F1         打开帮助指南
F10         激活菜单栏
F11         全屏切换
Alt+F         打开 “文件” 菜单(file)
Alt+E         打开 “编辑” 菜单(edit)
Alt+V         打开 “查看” 菜单(view)
Alt+S         打开 “搜索” 菜单(search)
Alt+T         打开 “终端” 菜单(terminal)
Alt+H         打开 “帮助” 菜单(help)

另外一些小技巧包括:在终端窗口命令提示符下,连续按两次 Tab 键、或者连续按三次 Esc 键、或者按 Ctrl+I 组合键,将显示所有的命令及工具名称。Application 键即位置在键盘上右 Ctrl 键左边的那个键,作用相当于单击鼠标右键。



===== Terminal终端 =====
CTRL + ALT + T: 打开终端
TAB: 自动补全命令或文件名
CTRL + SHIFT + V: 粘贴(Linux中不需要复制的动作,文本被选择就自动被复制)
CTRL + SHIFT + T: 新建标签页
CTRL + D: 关闭标签页
CTRL + L: 清楚屏幕
CTRL + R + 文本: 在输入历史中搜索
CTRL + A: 移动到行首
CTRL + E: 移动到行末
CTRL + C: 终止当前任务
CTRL + Z: 把当前任务放到后台运行(相当于运行命令时后面加&)
~: 表示用户目录路径

===== 如果打开一个程序 =====
以“系统配置”为例,先按SUPER + A,SUPER即Win键,然后切换到中文输入法,输入“系统配置”,按回车即打开程序。再按TAB键浏览系统配置里的子配置程序



===== 桌面 =====
ALT + F1: 聚焦到桌面左侧任务导航栏,可按上下键导航。
ALT + F2: 运行命令
ALT + F4: 关闭窗口
ALT + TAB: 切换程序窗口
ALT + 空格: 打开窗口菜单
PRINT: 桌面截图

SUPER: 打开Dash面板,可搜索或浏览项目,默认有个搜索框,按“下”方向键进入浏览区域(SUPER键指Win键或苹果电脑的Command键)
在Dash面板中按CTRL + TAB: 切换到下一个子面板(可搜索不同类型项目,如程序、文件、音乐)
SUPER + A: 搜索或浏览程序(Application)
SUPER + F: 搜索或浏览文件(File)
SUPER + M: 搜索或浏览音乐文件(Music)

===== Orca读屏软件 =====
启动Orca: SUPER + A,然后输入orca,然后回车
ORCA + 空格: 显示首选项对话框(ORCA键是指Insert插入键或CAPS LOCK大小写转换键,取决于设置)
ORCA + t: 读当前时间
ORCA + tt: 读当前日期
ORCA + s: 切换合成语音开关
ORCA + /: 朗读标题
ORCA + //: 朗读状态栏
ORCA + 分号: 朗读整个文件
ORCA + Q: 退出Orca
更多快捷键请参考Orca首选项的键绑定标签页

===== Firefox浏览器 =====
进入Firefox的方法:
1. SUPER + A,然后按firefox,回车。这个是在Dash面板中搜索应用程序运行。事实上,只要按fir就能定位到Firefox程序。
2. ALT,然后按firefox,回车。这个相当于在命令行运行一条命令。
3. 在终端中按firefox&,回车。这个适用于以终端作为主要操作窗口的用户,使用TAB键还可以自动补全命令(只需输入前几个字母再按TAB键)。&在shell中是后台运行的意思,这样终端就不会被Firefox独占。
CTRL + T: 新建标签页
CTRL + W: 关闭标签页
CTRL + SHIFT + T: 重新打开最近关闭的一个标签页
CTRL + TAB: 切换到下一个标签页
CTRL + SHIFT + TAB: 切换到上一个标签页
ALT + [1-8]: 跳到制定标签页
ALT + 9: 跳到最后一个标签页
CTRL + L: 跳到地址栏
ESC: 停止加载当前页面
CTRL + K: 跳到搜索引擎输入框
CTRL + F: 在当前页面中搜索
/: 快速查找。在Linux中很多程序(如VI、Man、Less)都使用/作为搜索的快捷键,并且可使用正则表达式查找。但在Firefox中没有正则表达式搜索的功能。
CTRL + D: 收藏到书签
ALT + 左方向键: 后退
ALT + v: 前进
CTRL + Q: 退出

===== Gedit文本编辑器 =====
启动gedit:SUPER + A,然后按gedit,回车
CTRL + N: 新建文档
CTRL + W: 关闭文档
CTRL + S: 保存
CTRL + SHIFT + S: 另存为
CTRL + S: 搜索
CTRL + H: 搜索并替换
CTRL + I: 跳到某一行
CTRL + C: 复制
CTRL + V: 粘贴
CTRL + X: 剪切
CTRL + Q: 退出

===== Nautilus文件管理器 =====
启动Nautilus的方法:
1. SUPER + 1,这个方法仅适用于Nautilus在左边快速启动的位置没有改变的情况。
2. SUPER + A,然后输入nautilus,然后回车
F2: 重命名
CTRL + 1: 图标视图
CTRL + 2: 列表视图
CTRL + T: 新建标签页
CTRL + W: 关闭标签页
CTRL + D: 收藏到书签
CTRL + Q: 退出
Nautilus还有很多和Firefox一致的快捷键。

===== Rhythmbox音频播放器 =====
CTRL + 空格: 播放/暂停
ALT + 右方向键: 下一首
ALT + 左方向键: 上一首
CTRL + 上方向键: 增大音量
CTRL + 下方向键: 减少音量
CTRL + U: 随机播放
CTRL + R: 重复播放
CTRL + Q: 退出

================================================

VI

vi/vim 基本使用方法
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。

1、vi的基本概念
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

1) 命令行模式command mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

2) 插入模式(Insert mode)

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。

3) 底行模式(last line mode)

将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。

不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。

2、vi的基本操作
a) 进入vi

在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:

$ vi myfile

不过有一点要特别注意,就是您进入vi之后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才能够输入文字。初次使用vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vi后,先不要乱动,转换到「插入模式(Insert mode)」再说吧!

b) 切换至插入模式(Insert mode)编辑文件

在「命令行模式(command mode)」下按一下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了。

c) Insert 的切换

您目前处于「插入模式(Insert mode)」,您就只能一直输入文字,如果您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下「ESC」键转到「命令行模式(command mode)」再删除文字。

d) 退出vi及保存文件

在「命令行模式(command mode)」下,按一下「:」冒号键进入「Last line mode」,例如:

: w filename (输入 「w filename」将文章以指定的文件名filename保存)

: wq (输入「wq」,存盘并退出vi)

: q! (输入q!, 不存盘强制退出vi)

3、命令行模式(command mode)功能键
1). 插入模式

按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;

按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;

按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

2). 从插入模式切换为命令行模式

按「ESC」键。

3). 移动光标

vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。

按「ctrl」+「b」:屏幕往“后”移动一页。

按「ctrl」+「f」:屏幕往“前”移动一页。

按「ctrl」+「u」:屏幕往“后”移动半页。

按「ctrl」+「d」:屏幕往“前”移动半页。

按数字「0」:移到文章的开头。

按「G」:移动到文章的最后。

按「$」:移动到光标所在行的“行尾”。

按「^」:移动到光标所在行的“行首”

按「w」:光标跳到下个字的开头

按「e」:光标跳到下个字的字尾

按「b」:光标回到上个字的开头

按「#l」:光标移到该行的第#个位置,如:5l,56l。

4). 删除文字

「x」:每按一次,删除光标所在位置的“后面”一个字符。

「#x」:例如,「6x」表示删除光标所在位置的“后面”6个字符。

「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符。

「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符。

「dd」:删除光标所在行。

「#dd」:从光标所在行开始删除#行

5). 复制

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。

「#yw」:复制#个字到缓冲区

「yy」:复制光标所在行到缓冲区。

「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。

「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

6). 替换

「r」:替换光标所在处的字符。

「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

7). 恢复/撤消/还原上一次操作

「u」:如果误执行一个命令,可以马上按下「u」,撤消上一个操作。按多次“u”可以执行多次撤消。

8). 更改

「cw」:更改光标所在处的字到字尾处

「c#w」:例如,「c3w」表示更改3个字

9). 跳至指定的行

「ctrl」+「g」列出光标所在行的行号。

「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

4、Last line mode下命令简介
在使用「last line mode」之前,请记住先按「ESC」键确定您已经处于「command mode」下后,再按「:」冒号即可进入「last line mode」。

A) 列出行号

「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。

B) 跳到文件中的某一行

「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

C) 查找字符

「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。

「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。

D) 保存文件

「w」:在冒号输入字母「w」就可以将文件保存起来。

E) 离开vi

「q」:按「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vi。

「qw」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

5、vi命令列表
1、下表列出命令模式下的一些键的功能:

h
左移光标一个字符

l
右移光标一个字符

k
光标上移一行

j
光标下移一行

^
光标移动至行首

0
数字“0”,光标移至文章的开头

G
光标移至文章的最后

$
光标移动至行尾

Ctrl+f
向前翻屏

Ctrl+b
向后翻屏

Ctrl+d
向前翻半屏

Ctrl+u
向后翻半屏

i
在光标位置前插入字符

a
在光标所在位置的后一个字符开始增加

o
插入新的一行,从行首开始输入

ESC
从输入状态退至命令状态

x
删除光标后面的字符

#x
删除光标后的#个字符

X
(大写X),删除光标前面的字符

#X
删除光标前面的#个字符

dd
删除光标所在的行

#dd
删除从光标所在行数的#行

yw
复制光标所在位置的一个字

#yw
复制光标所在位置的#个字

yy
复制光标所在位置的一行

#yy
复制从光标所在行数的#行

p
粘贴

u
取消操作

cw
更改光标所在位置的一个字

#cw
更改光标所在位置的#个字

下表列出行命令模式下的一些指令
w filename
储存正在编辑的文件为filename

wq filename
储存正在编辑的文件为filename,并退出vi

q!
放弃所有修改,退出vi

set nu
显示行号

/或?
查找,在/后输入要查找的内容

n
与/或?一起使用,如果查找的内容不是想要找的关键字,按n或向后(与/联用)或向前(与?联用)继续查找,直到找到为止。
作者: happyfan    时间: 2017-5-11 10:51

http://www.deeplearningbook.org
Some useful deep learning programming exercises and tutorials, not affiliated with the book, include:

    TensorFlow tutorials
    Theano exercises
    Theano deep learning tutorials
作者: happyfan    时间: 2017-5-11 10:54

Ian Goodfellow 生成对抗网络(GAN)论文解析
https://baijiahao.baidu.com/po/f ... 4178458820552%22%7D
Hexa要将商品3D建模变成纯软件服务,电商成本控制心腹大患找到新解法
OpenAI的人工智能能通过文字判断情绪,自学的!
解读 | 艺术家如何借助神经网络进行创作?
作者: happyfan    时间: 2017-5-11 10:59

BibTeX 是一种格式和一个程序, 用于协调LaTeX的参考文献处理.

BibTeX 使用数据库的的方式来管理参考文献. BibTeX 文件的后缀名为 .bib . 先来看一个例子

@article{name1,
author = {作者, 多个作者用 and 连接},
title = {标题},
journal = {期刊名},
volume = {卷20},
number = {页码},
year = {年份},
abstract = {摘要, 这个主要是引用的时候自己参考的, 这一行不是必须的}
}

@book{name2,
author ="作者",
year="年份2008",
title="书名",
publisher ="出版社名称"
}

说明:

    第一行@article 告诉 BibTeX 这是一个文章类型的参考文献. 还有其它格式, 例如 article, book, booklet, conference, inbook, incollection, inproceedings, manual, misc, mastersthesis, phdthesis, proceedings, techreport, unpublished 等等.
    接下来的"name1", 就是你在正文中应用这个条目的名称.
    其它就是参考文献里面的具体内容啦.

大概都是由这些一个个的这样的标签组成,每个表示一个文献,全部按照这样写即可。
@ARTICLE  @CONFERENCE  这些指定了文献的类型,article是期刊文章  ,conference是会议文章,可以从名称上分辨。类型有下面几种(来自http://amath.colorado.edu /documentation/LaTeX/reference/faq/bibstyles.html):

@article          An article from a journal or magazine
@book             A book with an explicit publisher
@booklet          A work that is printed and bound, but without a named publisher or sponsoring institution
@conference       The same as inproceedings
@inbook           A part of a book, which may be a chapter (or section or whatever) and/or a range of pages
@incollection     A part of a book having its own title
@inproceedings    An article in a conference proceedings
@manual  Technical documentation
@mastersthesis    A Master's thesis
@misc             Use this type when nothing else fits
@phdthesis        A PhD thesis
@proceedings      The proceedings of a conference
@techreport       A report published by a school or other institution, usually numbered within a series
@unpublished      A document having an author and title, but not formally published
@collection       Not a standard entry type. Use proceedings instead.
@patent           Not a standard entry type.

不翻译了,很简单的文字。
----
紧跟在@ARTICLE{之后的文字就是 这个文献的标签id了,这个在一个bib文件中需要是唯一的,因为我们在tex中用\cite{}引用时需要用这个id来引用,当然需要唯一的值(也不用怕,如果写重复了,bibtex在编译时不会给你通过的,你可以再修改)。
再后面的标签的说明也很简单了,author就是作者阿,title就是标题阿,这个不说了,大家一看肯定就都明白了。

PS:有直观的GUI的界面可以去管理,推荐使用JabRef来管理,我就用的这个,很方便,很快捷。
jabref跨平台的,急于java开发的一个东东,而且是免费的。ubuntu下直接sudo apt-get install jabref 即可,其他版本linux的自行处理,我没用过,win下也有版本,安装下就行。

编写好这些之后,保存,然后在你的tex文档中加入下面两行:
\bibliographystyle{bst文件 xx.bst}
\bibliography{你的bib文件名 xx.bib}
加入位置就是文章的正文之后,\end{document}之前,

在正文中引用时,采用\cite{id}的方式来引用,id就是上文中所说的唯一的id。
PS:如果没有bst文件时,那么就需要自己来用默认提供的几个bst模板了:
---(来源:http://zzg34b.w3.c361.com/package/reference.htm)
plain,按字母的顺序排列,比较次序为作者、年度和标题
unsrt,样式同plain,只是按照引用的先后排序
alpha,用作者名首字母+年份后两位作标号,以字母顺序排序
abbrv,类似plain,将月份全拼改为缩写,更显紧凑
ieeetr,国际电气电子工程师协会期刊样式
acm,美国计算机学会期刊样式
siam,美国工业和应用数学学会期刊样式
apalike,美国心理学学会期刊样式
-----
还有很多,这里不列举了,这里有所有的类型。
一般简单的用plain或者alpha就行了,ieeetr这些是针对特定的会议来使用。
上面也说了,一些期刊之类的也会提供他们自己的bst文件的,去相关网站下载即可。


tex和bib都设置好之后,就可以来编译了,编译分4步:
1. latex xx.tex 编译tex文件,没错误的话会生成aux文件,aux文件包含了引用这些的信息。
2. bibtex xx.aux 根据aux文件中记录的信息来检测bib文件中的相关文献,此时也会检测bib中相关的书写有无错误。
有错会提示,上面说的修改错误的时候就在这个时候来检测。
没有错误的话会生成bbl文件,你可以打开bbl文件看下就明白了,
bbl里面其实就是本文最刚开头说的直接用
\begin{thebibliography}{10}
\bibitem xxxx
\bibitem xxxx
\end{thebibliography}
的这种形势。
3. latex xx.tex 再次编译,把参考文献编译进文档中。
4. latex xx.tex 三次编译,把交叉引用编译正确。

完毕,可以打开dvi看下效果了!~!~
如果嫌麻烦,可以写个脚本或者一次执行多个命令。
我一般就把所有的写成一行来用:
latex my.tex; bibtex my.aux; latex my.tex; latex my.tex; dvipdf; acroread my.pdf;
PS:shell脚本我用的还不熟,不献丑了^_^
如果在论文撰写中,一般直接先查看dvi就可以了(把dvipdf往后的去掉,换成xdvi my.dvi)最后再生成pdf
因为dvipdf需要一点时间(特别是使用中文时,比较慢,可能是字体嵌入的问题,不太清楚,因为dvipdf编译全英文的paper还是比较快的)。

在LaTeX中使用BibTeX
为了在 LaTeX 中使用BibTeX 数据库, 你必须先做下面三件事情:

1) 设置参考文献的类型 (bibliography style). 标准的为 plain:

    \bibliographystyle{plain}

将上面的命令放在 LaTeX 文档的 \begin{document}后边. 其它的类型包括

    unsrt – 基本上跟 plain 类型一样, 除了参考文献的条目的编号是按照引用的顺序, 而不是按照作者的字母顺序.
    alpha – 类似于 plain 类型, 当参考文献的条目的编号基于作者名字和出版年份的顺序.
    abbrv – 缩写格式 .

2) 标记引用 (Make citations). 当你在文档中想使用引用时, 插入 LaTeX 命令

    \cite{引用文章名称}

"引用文章名称" 就是前边定义@article后面的名称.

3) 告诉 LaTeX 生成参考文献列表 . 在 LaTeX 的结束前输入

    \bibliography{bibfile}

这里bibfile 就是你的 BibTeX 数据库文件 bibfile.bib .

运行 BibTeX
分为下面四步

    用LaTeX编译你的 .tex 文件 , 这是生成一个 .aux 的文件, 这告诉 BibTeX 将使用那些应用.
    用BibTeX 编译 .bib 文件.
    再次用LaTeX 编译你的 .tex 文件, 这个时候在文档中已经包含了参考文献, 但此时引用的编号可能不正确.
    最后用 LaTeX 编译你的 .tex 文件, 如果一切顺利的话, 这是所有东西都已正常了.

例子: 将上面的 BibTeX 的的例子保存为 bibtex-example.bib .

\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK}{UTF8}{gkai}
%我是在linux下用使用latex的, window用户将上一行改为\begin{CJK}{GBK}{kai}
text\cite{name1}\cite{name2}
中文
把Latex中的 Reference 写成中文的"参考文献"
%如果文档类是article之类的, 用\renewcommand\refname{参考文献}
%如果文档类是book之类的, 用\renewcommand\bibname{参考文献}
\renewcommand\refname{参考文献}
\bibliographystyle{plain}
\bibliography{ bibtex-example.bib}
\end{CJK}
\end{document}

将上面的内容保存为bibtex-example.tex .

latex编译一次, bibtex 编译一次, 再用 latex编译两次就大功告成了!
作者: happyfan    时间: 2017-5-11 11:07

Ian Goodfellow详解GANs诞生始末:没有重现,谈何理解?
本文作者:奕欣         2017-04-12 17:31
导语:「如果 AI 对世界的想象非常具体而真实,包括懂得如何生成真实的图像和声音,那么就能促进 AI 理解真实存在的世界。而后者,可以帮助 AI 理解所见所听的内容。

雷锋网 AI 科技评论按:Ian Goodfellow 作为当代人工智能最为瞩目的研究者之一,不论是作为 Yoshua Bengio 的得意门生,还是在 OpenAI 及谷歌间跳槽辗转,他的一举一动都饱受关注。但奠定他人工智能地位的重要一着,当属 Goodfellow 提出的生成式对抗网络(GANs)了,在 2016 年年底,他也在 NIPS 大会上分享了研究成果。日前,Wired 对 IanGoodfellow 进行了采访,了解了 GANs 的研究起源,雷锋网进行编译,并做了不改动原意的编辑和修改。

1988 年 2 月 15 日,也就是1965 年诺贝尔物理奖得主理查德·费曼因腹膜癌逝世的那一天,他教室的黑板留下了这样一句话:「我不能理解我无法创造之物。」这句名言被谷歌大脑团队的 Ian Goodfellow 用来解释人工智能的设计逻辑:「人工智能无法理解它不能创造的东西。」

「生成模型」是 Goodfellow 在谷歌建立的一个新的研究小组,系统能够创建图像、声音及其它真实世界的表征。Goodfellow 引用了费曼的话,认为这是实现人工智能的必由之路。

时间追溯到 2014 年,当 Goodfellow 还在蒙特利尔大学读博之时,他在一次醉酒的讨论中激发了构建一种名为「generative adversarial networks」,也就是 GANs 的 AI 技术。

现在,对 GANs 有粗略了解的学者都能说出这个观点的核心概念:一个生成器生成图像;一个判别器判断图像的真假。Goodfellow 表示:「你可以把两者理解为艺术家与评论家,前者想骗过评论家的眼睛,让他相信自己所呈现的画是真的。」因此,两者就能够在这个过程中不断提升各自的水平,直到摆脱人类的指导。

Facebook 首席科学家,深度学习三大巨头的 Yann LeCun 认为,「GANs 是近 20 年来深度学习领域诞生的最有意思的想法。」

深度学习作为人工智能的一个分支,改变了以谷歌、微软、亚马逊及 Facebook 为代表的互联网巨头的发展方向。虽然 Goodfellow 的想法还有待完善,但这一想法已经迅速扩展到整个 AI 界。包括 LeCun 在内的很多研究者认为 GANs 是实现无监督学习的可能路径。

而 Goodfellow 又是在怎样偶然的情况下设计出 GANs 的呢?他当时在 Les 3 Brasseurs 酒吧,和很多好友一同饯别博士毕业、如今就职于 DeepMind 的 Razvan Pascanu。其中一人谈到了他正在做的研究,即用统计学的方式将照片数据输入计算机,使之创建图片。当时 Goodfellow 认为这个想法不可能行得通,因为这涉及太多的统计学数据了。但在同时,他想到了一个更好的方法:神经网络能够教机器如何生成真实的图片。

Goodfellow 提出,可以构造两个神经网络,一个能学习生成真实图片,另一个能够判断真伪并给予反馈,通过这样的方式,他认为可以教会神经网络如何生成非常逼真的图片。

当时这个想法遭到了朋友的反驳,他们认为这个方法并不管用。而在聚会结束之后,微醺的 Goodfellow 回到家,「我感觉有点醉,而女朋友已经睡着了。我就在笔记本电脑上彻夜编出了 GANs 模型。实在是非常幸运,如果没有那晚的成功,可能我就放弃了这个想法。」

随后,Goodfellow 根据当晚的想法与几位研究者提出了 GANs 的概念,在第一篇论文里,两个神经网络通过生成式对抗学习,生成了手写数字的图片。而在接下来的三年间,上百篇论文都围绕这一概念进行探索。如今,从猫到火山再到星系,几乎任何事物都能当作生成图片的对象,甚至,它还协助了天文实验及物理学的研究。

尽管想法美好,现实却推进困难。毕竟要训练的神经网络不是一个,而是两个。Goodfellow 在谷歌建立的 GANs 研究团队目前所做的,就是尽可能地精简研究过程。「作为一名机器学习研究者,我需要研究可靠的训练方式。」

而除了生成图片与声音,系统还能够识别音画。能在少量人为干预的情况下,系统就能学到更多的知识。「模型能够理解世界如何构成,」Goodfellow 表示,「而且能在不进行明确告知的情况下进行学习。」

GANs 甚至能实现无监督的学习,实际上这一理念还没有化为现实。目前,神经网络能通过分析百万张猫的照片而成功识别,但需要人类大量进行人为标记,而且涉及人类的深度参与。人类的介入也一直成为 AI 研究者所考虑的问题。以 LeCun 为代表的研究者正在努力推进无监督学习系统,毫无疑问,这将推进人工智能的发展。

但这只是开始。GANs 将带来更多的可能性。南加利福尼亚大学的 AI 研究员 David Kale 认为,因为 GANs 能生成伪造数据,因此它能够在不侵犯用户隐私的前提下构建医疗 AI。机器学习得以在这些新生成的数据上进行训练。Kale 表示,「比起将患者数据放到互联网上(承受可能带来的隐私风险),为何我们不能训练 GANs 生成一个数据集,再用于其它领域的研究呢?」

有许多研究者在探究 GANs 背后的奥秘,而 Goodfellow 则打算在谷歌建立一个专门的团队。在离开谷歌加入 OpenAI 一年之后,他又重回谷歌,为了更好地与合作者们沟通。「花费一整天视频通话并不好玩,也不是解决工作的最佳途径。」

分享诚然重要,但密切的合作亦是如此——不论是 AI 研究者还是神经网络,都是一样。
作者: happyfan    时间: 2017-5-12 21:19

http://blog.csdn.net/u010099080/article/details/53418159
tensorflow Windows版本
好用的
作者: happyfan    时间: 2017-5-12 21:39

Github上除了有TensorFlow的源码库之外,还有一些很不错的适合入门的资源。现在将目前已经接触到的资源整理出来,和大家分享。

1、TensorFlow源码库

https://github.com/tensorflow/tensorflow

2、TensorFlow中文文档

https://github.com/jikexueyuanwiki/tensorflow-zh

3、TensorFlow入门例子库1,每个例子都有对应的Notebook说明。

https://github.com/pkmital/tensorflow_tutorials

4、TensorFlow入门例子库2

https://github.com/nlintz/TensorFlow-Tutorials

5、TensorFlow入门例子库3,每个例子都有对应的Notebook说明。

https://github.com/aymericdamien/TensorFlow-Examples


TensorFlow学习课程:

http://learningtensorflow.com/index.html

这个网站按照入门的顺序,安排课程介绍如何学习TensorFlow,并且配备了一些例子和资料,很适合入门初学者学习。
作者: happyfan    时间: 2017-5-12 22:25

http://www.rmit.edu.au/research/ ... -materials/software
mikexie的结构优化
作者: happyfan    时间: 2017-5-13 18:53

http://blog.csdn.net/superman_xxx/article/details/65635285
使用下面的命令启动镜像:

docker run -it registry.cn-hangzhou.aliyuncs.com/denverdino/tensorflow /bin/bash
//选项-i用于保持STDIN在当前的窗口上,-t用于分配一个pesudo-tty,两个选项使得当前的窗口可以像一个linux的bash一样运行,丝毫没有违和感。第一个参数指定了使用的镜像,第二个参数指定了启动这个镜像后启用的命令,用bash启动方便我们开始第一次的探索。

    1
    2

    1
    2

这里写图片描述

8.
uname -a,查看信息
cd到/目录下,查看目录结构
运行tensorflow的hello world

root@ec9bfd276082:/# uname -a
Linux ec9bfd276082 4.4.8-boot2docker #1 SMP Mon Apr 25 21:57:27 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
root@ec9bfd276082:/# ls /
bin   dev  home  lib64  mnt        opt   root  run_jupyter.sh  srv  tmp  var
boot  etc  lib   media  notebooks  proc  run   sbin            sys  usr
root@ec9bfd276082:/# python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess =tf.Session()
>>> sess.run(hello)
'Hello, TensorFlow!'
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> sess.run(a+b)
42
>>>


问题解决
作者: happyfan    时间: 2017-5-13 19:27

4.      安装cudnn5.0:

        (1)、解压缩:会生成cuda/include、cuda/lib、cuda/bin三个目录;

        (2)、分别将cuda/include、cuda/lib、cuda/bin三个目录中的内容拷贝到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5对应的include、lib、bin目录下即可。

        cuda7.5和cudnn5.0就可以在机子上正常使用了。
作者: happyfan    时间: 2017-5-13 20:33

https://github.com/hindupuravinash/the-gan-zoo
gan大全
作者: happyfan    时间: 2017-5-13 20:38

http://pytorch.org/
新的框架
作者: happyfan    时间: 2017-5-15 12:42

https://zhuanlan.zhihu.com/p/25572330
http://www.jianshu.com/p/5ae644748f21

pytorch 入门教程
作者: happyfan    时间: 2017-5-15 17:14

超简单!pytorch入门教程 5 分钟带你入门 PyTorch
2017-05-04 23:36
http://mp.weixin.qq.com/s/xo9vCWd3XbkwbhACtBu1QQ

Siraj Raval 何许人也?

Siraj Raval是YouTube极客网红,曾任职于Twilio和Meetup,客户包括Elon Mask和Google,教大家如何使用机器学习开发聊天机器人、无人驾驶车、AI艺术家等视频点击量累计数百万。
pytorch用了交互式的图,做研究更好
作者: happyfan    时间: 2017-5-15 18:02

http://blog.csdn.net/u010668907/article/details/50993687
python图片处理Image和skimage的不同
做cnn的难免要做大量的图片处理。由于接手项目时间不长,且是新项目,前段时间写代码都很赶,现在稍微总结(恩,总结是个好习惯)。

1,首先安装Python-Image和python-skimage、python-matplotlib。
作者: happyfan    时间: 2017-5-15 18:07

http://m.blog.csdn.net/article/details?id=51340894
导言:由于经常需要处理图像,习惯了matlab那么好用的图像处理工具箱,搬到python后有点不知所措了。搜了下python图像处理方面的库,好多PIL的教程,但是无奈的是PIL和numpy等结合不好,而且半天找不到图像处理的函数在哪里,只好作罢;终于搜到了skimage,:-),喜出望外,因为它是和scipy、numpy可以完美结合的,那么就可以很好的使用numpy了。废话不多说,直接上干货吧。
作者: happyfan    时间: 2017-5-15 23:51

http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html
利用官方教程入门还是比较好




欢迎光临 设计管理在线 (http://www.dmolcn.com/forum/) Powered by Discuz! 6.0.0