Apache 斯Parker 1.6 Hadoop 2.6 Mac下单机安装配置

一 、 下载资料

一经未来 Google上搜深度学习,大家会发现深度学习的关怀度从二〇一三年到前年上升了数十倍。特别在神州,近两年大约都在谈机器学习、人工智能。在深度学习这一块又拍云也开始展览了成千成万的施行。

  1. JDK 1.6 + 

  2. Scala 2.10.4

  3. Hadoop 2.6.4 

  4. Spark 1.6 

先介绍一下又拍云在人工智能方面包车型客车第二个产品——又拍云内容识别服务。“内容识别”是又拍云“图像视觉”项目下的首先个产品,是依据人工智能、大数量解析而研发的新星新闻安全化解方案,能实时处理多媒体内容(图片、摄像、直播等),识别色情、广告、暴恐等各类新闻,近来色情内容识别正确率已高达
99.7%,而且在频频增高级中学。

 

本文以又拍云内容识别服务为例,向大家来得又拍云在深度学习连串中的实践。

② 、预先安装

纵深学习理论

在介绍深度学习在此之前,先不难介绍一下纵深学习的基本理论知识。

纵深学习—分类器与分类算法

1.分类器:常见的分类方法有垃圾邮件过滤、手写数字识别、图片分类、鉴黄等;

2.分拣算法:深度学习算法有朴素按贝叶斯算法,以及基于 KNN、SVM
的算法和人工神经网络算法等;

从图 1
大家能够旁观守旧机器学习算法准确率早先时代会趁着数据量的升高有所上身,但抓好到3个点时就很难继续增强,而据悉人工神经网络的模子随着数据量的滋长,准确率会持续上涨。

日前所处的互连网时期,数据积累相对比较不难,且独具十分的大的数额积累量,卓殊适合机器深度学习。所以又拍云选择的分类器是人工神经网络。

澳门美高梅手机网站 1

 

△ 图1 守旧机器学习 vs 人工神经网络

图 2
所示为人工神经互联网示意图,人工神经网络由众多的层组成,每一层有为数不少节点,节点之间有边相连的,每条边都有贰个权重。对于文本来说输入值是每2个字符,对于图片来说输入值正是每叁个像素。

澳门美高梅手机网站 2

△ 图2 人工神经互连网

人工神经互连网通过前向传播对输入值,举办权值运算,最终一层层传下去得到最终输出预测的值。再经过反向传来,与真正值做相比较革新前向传播的权值和偏置。

澳门美高梅手机网站 3

图3 反向传来

反向传播是何许立异参数 W 和 B
的?通过梯度下落的算法,运用梯度下跌的算法能够找出一组 W 和 B,使得函数
C 最小,在样本上找到最优或然近似最优的 W 和 B ,之后采用 W 和 B
进行预测。

澳门美高梅手机网站 4

 

△ 图4 梯度降低

  1. 安装JDK

纵深学习硬件&软件准备

在打听深度学习的基本知识之后,我们看下供给什么硬件、软件工具。

硬件

下图表格是又拍云第叁台深度学习演练机器的硬件配备:

 

澳门美高梅手机网站 5

软件

纵深学习机器配置的操作系统,又拍云选用了 Ubuntu 16.04,框架选择 Caffe 和
Tensorflow,下文大家也重点介绍那二种框架。

Caffe 框架

Caffe 不难入门,品质杰出,援救 python 和 C++ 接口,同时还有无数 model
zoo,能够轻松找到语音识别、总括机图片识别、人脸识别等品类的深浅学习模型。但是Caffe
存在难以扩充,设计架构并未为扩大留好接口,只可以单机械运输维且安装太复杂等缺陷,并且
Caffe 每二个本子都急需再一次编辑 C++ 代码。

TensorFlow 框架

TensorFlow 援助 GPU、分布式(弥补了Caffe 不援助的短处),拥有
TensorBoard
功用,能够磨炼一切可视化的进度,同时还有活泼的社区和周密的文书档案,并且功用强大、不难扩充。但是TensorFlow 的模子没有 Caffe 直观,通过文件文件定义的 Caffe
不用编辑代码,而采取 TensorFlow 需求有编写制定能力和算法功底。

2. 安装Scala 2.10.4

又拍云深度学习实践

     解压安装包即可

怎么样是内容识别系统

内容识别:主若是指色情、广告、暴恐等图像、录制内容的智能识别;

内容识别系统原理:上传图片到样本管理平台,人工举行标注图片是或不是性感图、色情图、广告图或许是暴恐图片,标注达成后将它内置线下处理平台练习,得出陶冶模型和结果,再将模型得到线上进行智能识别。

澳门美高梅手机网站 6

 

△ 图5 又拍云图片鉴定分别系统原理

  1. 配置sshd 

又拍云内容识别后台

图6是又拍云图片鉴黄控制台,用户将图片上传播又拍云鉴黄控制台后,就足以兑现色情识别,不供给本身开发后台。

图7是又拍云人脸相似度识别后台,用户将录像头、图片接入控制台后,系统会活动判断图片里面包车型大巴人员。

澳门美高梅手机网站 7

25.jpg

△ 图6 图片鉴黄

 

澳门美高梅手机网站 8

 

△图7 人长相似度识别

  ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa

纵深学习三要素:数据、模型、总括

数据

数码来源于:首要透过对始发数据图片进行人工标注和机器标注。数据样本格外的首要,好的范本等于成功了4/8。

模型

从 Caffe model zoo
找到适用模型之后根本针对四个文本举办修改调整:第四个公文是输入,比如说修改一下
data 文件,或将输入的地址改成刚刚定义的 TXT 文件;第1个是 solver
文件,对 baselr 参数实行调整。

 

澳门美高梅手机网站 9

△ 图8 模型输入修改

调动完输入和 solver
文件就足以开始展览深度学习磨练了。依照职责的轻重缓急,磨练往往会开支多少个钟头、甚至几周。陶冶完之后
Caffe 会生成 model 文件,能够平昔用 Caffe text
将模型的参数代入,对测试文件实行预测,并出口预测的结果。

计算

教练计算格局根本有命令行和 python
接口二种方法。上文提到的磨练情势重点是以命令行的方式开展的。别的大家还是可以够透过
python 接口实行练习。

透过 python 接口举办展望的 Caffe 主体代码,在初阶时定义 Caffe 的
net,那里须要钦命模型,内定的参数文件。图9
中间一段代码是对输入的图形展开诸如将像素减去平均值那类的预处理。完结之后输入须求进行展望的图形,将图纸的地点给它,调用前向传播,就足以博得二个出口,那里是不须要做反向传来,因为大家是开始展览展望而不是演习,最终可以把预测结果打印出来。

澳门美高梅手机网站 10

 

图9 python 接口

 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

深度学习磨炼之外的要义

1.对模型进行贰次调优

Fine-turning,汉译“微调”,若是大家唯有几千张、几万张图纸,很难磨炼优质的模型。磨炼非凡的模子要求开销的长达几天、几周时间。大家想赶快获得练习结果,可以对后面陶冶好的本子举办1遍调优,在本来的公文
model 上进展二次磨炼,就把预陶冶的模子加在 Caffe 前边,Caffe
会使用前面的参数实行伊始化。借使不点名的话,Caffe 的开始化是轻易的。

当数据量增大后,大家会意识一台机器运维速度太慢,供给利用多台机器举行练习,然而Caffe 只支持多 GPU
格局,不帮衬多机器联机情势,所以涉及到多机器演练时,我们得以采纳TensorFlow。

2.Data Augmentation

当图片数量达到一定数额级后,因为网络里的图样都相互链接,难免相同,那带来了范本增进困难的标题。

Data Augmentation
算法通过对同一张图片进行旋转、缩放以及翻转等操作,将图10老鼠增强了累累倍。不过Caffe 原生系统中是不帮助数据增进的,那亟需本人编写程序。

澳门美高梅手机网站 11

△ 图10 增添正样本数量

3.Mesos+Docker 部署

终极当参数和模型都安装练习落成将来,大家得以经过 Mesos+Docker
的模子将它配置到在线对外服务。

Mesos+Docker 布署有四个格局:CPU形式和GPU模式

mac 启动sshd

CPU模式:

  • 可取:简单、不受机器限制;
  • 缺点:速度慢,单核处理一张图片须求250ms
  • 适用于异步处理职分

sudo launchctl load -w
/System/Library/LaunchDaemons/ssh.plist

GPU模式:

  • 优点:速度快,性能是CPU的八倍
  • 特色:mesos:–docker=nvidia-docker(使用 GPU 形式,必须在起步 mesos
    时设置好那个参数)
  • 适用于联合处理

查阅运营

总结

1.pilow-simd 规换 PIL:因为PIL不帮忙CPU的高级的下令,所以将 pilow-simd
替换的,质量差不离能增强四分一左右;

2.样本越来越多越好,样本越来越多演习出来的模型就越精准;

3.batch_size:那些值三次陶冶图片的数目,供给大家将数值能调到最大;

4.base_lr、 weight_decay 等参数要求展开反复重试,不断地调整设定。

上述正是又拍云深度学习的履行,紧要涉嫌硬件、软件,以及框架选型,感兴趣的恋人能够友善尝尝操作一下。

sudo launchctl list | grep ssh

引进阅读:

浪漫与色情有多少距离——你不明了的图片鉴黄那么些事情

输出- 0 com.openssh.sshd
表示运行成功

停止sshd服务

sudo launchctl unload -w
/System/Library/LaunchDaemons/ssh.plist

 

 

三、安装Hadoop 

 

  1. 始建Hadoop文件系统目录

mkdir -pv  hadoop/workspace

cd hadoop/workspace

mkdir tmp

mkdir -pv hdfs/data

mkdir -pv hdfs/name

添加hadoop目录环境变量

vi ~/.bashrc

HADOOP_HOME=/Users/ysisl/app/hadoop/hadoop-2.6.4

 

配置hadoop,都在$HADOOP_HOME/etc/hadoop 下

  1. core-site.xml

<configuration>

<property>

    <name>fs.default.name</name>

   
<value>hdfs://localhost:9000</value>

    <description>HDFS
URI</description>

</property>

<property>

    <name>hadoop.tmp.dir</name>

   
<value>/Users/ysisl/app/hadoop/workspace/tmp</value>

    <description>namenode temp
dir</description>

</property>

</configuration>

 

2. hdfs-site.xml

<configuration>

<property>

    <name>dfs.name.dir</name>

    <value>/Users/ysisl/app/hadoop/workspace/hdfs/name</value>

    <description>namenode上囤积hdfs名字空间元数据 </description> 

</property>

<property>

    <name>dfs.data.dir</name>

    <value>/Users/ysisl/app/hadoop/workspace/hdfs/data</value>

    <description>datanode上数据块的物理存款和储蓄地方</description>

</property>

<property>

    <name>dfs.replication</name>

    <value>1</value>

    <description>副本个数,配置暗中同意是3,应低于datanode机器数量</description>

</property>

</configuration>

 

  1. copy mapred-site.xml.template to
    mapred-site.xml

<configuration>

<property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

</property>

</configuration>

 

  1. yarn-site.xml

<configuration>

<property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

</property>

<property>

        <name>yarn.resourcemanager.webapp.address</name>

        <value>localhost:8099</value>

</property>

</configuration>

 

  1. 格式化HDFS文件系统

$HADOOP_HOME/bin/hdfs namenode -format 

 

  1. 进入sbin/ 执行 start-all.sh

  2. 实施jps 查看是否健康运维

21472

30256 Jps

29793 DataNode

29970 SecondaryNameNode

29638 NameNode

30070 ResourceManager

30231 NodeManager

 

  1. 打开 澳门美高梅手机网站,http://localhost:50070/explorer.html
    网页查看hadoop目录结构,说明安装成功

 

 

四、安装Spark

  1. 解压spark压缩包

 tar xvzf spark.1.6.tar.gz 

 

  1. 加盟环境变量

vi ~/.bashrc

SCALA_HOME=/Users/ysisl/app/spark/scala-2.10.4

SPARK_HOME=/Users/ysisl/app/spark/spark-1.6.1-bin-hadoop2.6

 

  1. 设置配置文件

cd spar-1.6.1-bin-hadoop2.6/conf

cp spark-env.sh.template spark-env.sh

vi spar-env.sh

添加如下内容

export
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home

export
SCALA_HOME=/Users/ysisl/app/spark/scala-2.10.4

export
HADOOP_CONF_DIR=/Users/ysisl/app/hadoop/hadoop-2.6.4/etc/hadoop

export SPARK_MASTER_IP=localhost

export SPARK_WORKER_CORES=2

export SPARK_WORKER_MEMORY=2g

 

cp slaves.template slaves

默许slaves现在就主机一台

 

  1. 启动 sbin/start-all.sh

jps 查看到多出二个Master,worker进程

21472

29793 DataNode

29970 SecondaryNameNode

30275 Master

30468 SparkSubmit

29638 NameNode

30070 ResourceManager

30231 NodeManager

30407 Worker

30586 Jps

 

  1. 配置scala 、spark 、 hadoop 环境变量参预PATH
    ,方便执行

vi ~/.bashrc

export
HADOOP_HOME=/Users/ysisl/app/hadoop/hadoop-2.6.4

export
SCALA_HOME=/Users/ysisl/app/spark/scala-2.10.4

export
SPARK_HOME=/Users/ysisl/app/spark/spark-1.6.1-bin-hadoop2.6

export
PATH=”${HADOOP_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH”

 

 

五. 测试运转 

 1. 预备几个csv文件,路径  /Users/ysisl/app/hadoop/test.csv 

 2. 翻看DFS文件系统结构, 执行 hadoop fs -lsr /

 3. 新建目录 , hadoop fs -mkdir /test

 4. 上传文件到目录, hadoop fs -put
/Users/ysisl/app/hadoop/test.csv /test/

 5. hadoop fs -lsr / 查看已创造的目录文件

 6. 执行 spark-shell 

    scala
> val file=sc.textFile(“hdfs:/test/test.csv”)

    scala
> val count=file.flatMap(line=>line.split(” “)).map(word=>(word,1)).reduceByKey(_+_)

    scala > count.collect

 

 7. 查看执市价况

     a. localhost:8080  ,查看spark 集群运营状态。
此端口一般与任何端口争执

           在spark-env.sh 中加入 export
SPARK_MASTER_WEBUI_PORT=98080 来指定

 

     b. http://localhost:4040/jobs/ ,查看
spark task job运转状态

 

     c. http://localhost:50070/ hadoop集群运维情况

 

 

 

 

 

 

 

 

 

 

 

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注