TeraSort实验--测试Map和Reduce Task数量对Hadoop性能的影响

hadoop 性能调优 重要参数设置技巧 这里主要针对Mapreduce的性能调优。 这一两个月在做mapreduce的性能调优,有些心得,还是要记下来的,以郷后人~ 这里主要涉及的参数包括: HDFS: dfs.block.size Mapredure: io.sort.mb io.sort.spill.percent mapred.local.dir mapred.map.tasks & mapred 阅读详情

 

一、           实验环境


1个master节点, 16个slave节点: CPU:8GHZ , 内存: 2G

网络:局域网


二、           实验描述


   通过Hadoop自带的Terasort排序程序,测试不同的map task和reduce task数量,对Hadoop性能的影响。

   实验数据由程序中的teragen程序生成,数据量为1GB和10GB。

   通过设置mapred.min.split.size,从而调节map task的数量;设置mapred.reduce.tasks,从而调节reduce task的数量;

   dfs.replication的值设为3,其它参数默认。


三、           实验结果与分析


 

Ø  实验一

 

                表1、改变reduce task(数据量为1GB)

Map task = 16

Reduce task

1

5

10

15

16

20

25

30

45

60

总时间

892

146

110

92

88

100

128

101

145

104

Map 时间

24

21

25

50

21

40

24

48

109

25

Reduce时间

875

125

88

71

67

76

102

80

98

83

Killed map/reduce

Task Attempts

0/0

0/2

0/2

0/5

0/4

0/9

0/9

0/8

1/7

0/17

 

 

结果分析:

1)         当reduce task的值小于15时,总时间和Reduce时间都与Reduce task数量成反比关系。当reduce task的值大于15时,总时间和reduce时间基本保持恒定。Reduce task的数量应该设置为接近slave节点数量,或者适当大于节点数,不宜设置为比节点数量小太多。

2)         Map时间与Reduce task之间没有明显的关系。

3)         Killed map Task Attempts的值对Map的时间影响很大,表1中当reduce task = 45时,Killed map Task Attempts的值为1,此时Map的时间很长,从图1可看出,map的时间主要集中在map 99%的最后阶段。

4)         job运行过程中产生Killed Task Attempts的原因:这是因为hadoop里面对task的speculative机制。简单来说就是hadoop觉得有些task运行过慢,所以它在其它tasktracker上同时再运行同样的任务,当其中一个完成后,其余同样的任务就会被kill掉。这就造成有多个被kill的taskattempt。可以通过设置mapred.map.tasks.speculative.execution为false来禁止hadoop的这种行为,这样可以提高效率,因为每个speculative都是占用task的slot的。

 

图1、表1中当reduce task = 45的执行过程

 


Ø  实验二

 

          表2 改变reduce task(数据量为1GB)

Reduce task = 15

Map task

2

4

8

16

Input Split Size

512

256

128

64

总时间

372

181

120

120

平均 Map 时间

287

63

38

26

Map结束时间

292

49

35

36

平均Shuffle时间

12

42

28

45

Shuffle结束时间

308

103

63

67

平均Reduce时间

30

34

37

28

Reduce结束时间

343

154

113

100

Killed map/reduce

Task Attempts

0/4

0/5

0/3

0/5

 

 

图2、 1G数据性能对比

 

                        表3 改变map task(数据量为10GB)

Reduce task = 15

Map task

20

38

76

150

Input Split Size

512

256

128

64

总时间

3044

2464

2189

2362

平均 Map 时间

1274

825

403

231

Map结束时间

1712

1409

1061

1268

平均Map时间

1800

1300

1144

1198

Shuffle结束时间

2271

2236

1804

2059

平均Reduce时间

515

450

548

644

Reduce结束时间

2624

2453

2181

2348

Map Failed/Killed Task Attempts

4/8

5/7

6/7

7/8

Reduce Failed/Killed Task Attempts

2/3

3/1

3/1

2/1

 

 

 

 

图2、 10G数据性能对比

 

 

结果分析:

1)         Map Task数量对系统性能有很大影响。1G数据时,最差性能(372秒)比最好性能(120秒)低三倍,10G数据时,最差性能(3044秒)比最好性能(2189秒)多了大约14分钟。

2)         当数据量为1G和10时,总时间、Map时间、Shuffle时间、Reduce时间随着Map task数量的增大,总体上均呈现先减小后增大的变化趋势;

3)         当数据量为1G和10G时,把Input Split Size设置为128M(此时,1G数据Map task=8, 10G数据Map task =76),系统性能最佳;

当数据量为1G时,Failed的task数量一直都是0,然而当数据量为10G时,Failed task的数量变大很多,分析后发现是,数据量增大后,因为某些节点硬盘剩余容量较小,导致Fail。

 

本文原创,转载请注明,谢谢。

本文地址http://blog.youkuaiyun.com/xiejava/archive/2011/05/19/6432095.aspx

 

测试眼里的Hadoop系列 之Terasort TeraSort是Hadoop的测试中很有用的一个工具,但以前只是粗略的知道它的功能和用法,简单的用它做了几个测试用例。实际上,对于这种比较通用的工具,如果能够了解它更多一些的话,对于理解Hadoop是很有帮助的,同时也可以更好的利用它来帮助测试。最近有点时间,就了解了一些它的背景,代码实现原理等等,就先记录下来吧。 1. Hadoop与Sort Benchmarks SortBenchmar 阅读详情

相关推荐

【信息科学与工程学】计算机科学与自动化——第八十四篇 C++分布式软件高并发/高可用算法01

4. 提交:协调者选择提交时间戳(>所有读时间戳),两阶段提交:a) 写意图预提交到所有参与者,b) 参与者持久化后确认,c) 协调者决定提交,异步清理意图。:客户端请求发送到协调节点,协调节点根据路由转发到主分片所在节点。Span有父子关系。1. 索引文档:客户端发送PUT请求到协调节点,协调节点路由到主分片节点,主分片写入本地,然后并行复制到副本分片,等待确认后响应客户端。3. 搜索:客户端发送搜索请求到协调节点,协调节点广播到所有相关分片,每个分片执行查询,返回结果,协调节点合并、排序、分页后返回。

weixin_49199313的博客 1079

Spark 与 Hadoop 关于 TeraGen/TeraSort 的对比实验(包含源代码)

自从 Hadoop 问世以来,MapReduce 在很长时间内都是排序基准测试的纪录保持者,但这一垄断在最近被基于内存计算的 Spark 打破了。在今年Databricks与AWS一起完成的一个Daytona Gray类别的Sort Benchmark中,Spark 完胜 Hadoop MapReduce:“1/10计算资源,1/3耗时”。这是个很有意思的对比实验,因此笔者也在一个小规模集群上做了一个微缩版的类似试验。

samhacker的专栏 8345

Hadoop实战:*********MapReduce的性能调优(一)*********

这里主要涉及的参数包括: HDFS: dfs.block.size Mapredure: io.sort.mb io.sort.spill.percent mapred.local.dir mapred.map.tasks & mapred.tasktracker.map.tasks.maximum mapred.reduce.tasks & mapred.tasktracker.

探索地理之源 分享GIS价值 3237

Spark TeraSort 实现与调优

参考ehiggs/spark-terasort以及RDD#sortBy的代码,我自己实现了一个Spark的TeraSort程序。

Just for Fun la 4639

Hadoop集群运行态诊断与稳定性调优实战

Hadoop集群的稳定运行远不止于配置完成,其核心挑战在于运行态的隐性故障——如NameNode卡死、DataNode掉线、YARN任务阻塞等。这些现象本质是资源争抢、JVM GC压力、心跳超时、磁盘水位等底层机制失配所致。掌握OS层端口与磁盘检查、JVM层GC日志分析、RPC层心跳穿透验证、业务层数据与任务连通性检测四层诊断方法,结合TeraSort压测建立性能基线,并通过ELK日志巡检实现提前预警,是保障HDFS高可用与YARN调度可靠的关键技术路径。本文聚焦Hadoop运行态稳定性工程实践。

weixin_33895516的博客 341

Hadoop伪分布式配置四层模型与启动避坑指南

Hadoop伪分布式部署是大数据入门的核心实践环节,其本质是通过本地模拟集群行为,验证HDFS、YARN和MapReduce三大组件的协同机制。理解其底层原理需从JVM环境、核心XML配置、运行时变量和进程协作四个层级切入,任一环节错位都将导致NameNode无法启动、DataNode注册失败或YARN任务卡在ACCEPTED状态。技术价值在于构建可验证、可回溯的最小闭环,支撑WordCount等基础任务端到端执行。典型应用场景包括教学实验、CI/CD环境搭建及Docker化开发调试。本文聚焦hadoop伪

weixin_34021089的博客 338

Spark性能测试Terasort

上次做了Hadoop集群的性能测试,因为主要的大数据开发工作在Spark上,这次做一下Spark的性能测试。 CDH6.0.1环境Hadoop集群性能测试 代码参考:spark-terasort 因为使用的CDH6.0.1,Spark版本2.2.0,代码需要做一些修改,这里已经在Spark2.3源码下修改好并编译打包,放到了Spark的examples里,可以替换Spark的exampl...

L, there! 2468

C# WinForms实战:5分钟用ScottPlot打造专业级示波器界面(附完整代码)

本文详细介绍了如何在C# WinForms应用中,利用ScottPlot.WinForms库快速构建一个专业级的软件示波器界面。通过从环境配置、静态波形绘制到动态数据实时更新的完整实战演示,帮助开发者高效实现高性能的波形显示功能,适用于工业监控、信号分析等多种场景。

weixin_29198045的博客 831

Hadoop集群性能调优实战:从原理到参数配置的完整指南

在大数据生态系统中,分布式存储与计算框架是处理海量数据的核心基础设施。其工作原理基于将数据分片存储与并行计算,通过资源统一调度来提升吞吐量。这项技术的核心价值在于,能够以横向扩展的方式,高效、稳定地处理PB级数据,并显著降低海量数据处理的硬件与运维成本。其典型应用场景包括企业级数据仓库、实时数据分析平台以及机器学习训练管道。本文将聚焦于Hadoop这一经典框架,深入探讨如何通过系统化的性能调优,解决数据倾斜与资源利用率低下等常见工程挑战,从而充分挖掘集群潜力,实现从“能用”到“好用”的跨越。

culiao2169的博客 528

Arduino四足开源机器猫-Opencat(导航贴)

本内容由我和小伙伴共同编写,未经授权,谢绝转载! 1.项目介绍 2.组装调试教程 (一)Opencat-F (1)资料地址(包含程序代码&&3D打印图纸): 链接:https://pan.baidu.com/s/1AcVA5jSiOSzRKqEQAomrTA 提取码:szfx (2) (二)Opencat-B (1)组装调试 (2)组装调试注意事项 (3)添加新技能 3.编程 ...

qqliuzhitong的博客 4172

云计算系统等保测评对象和指标选取

参考GBT22239-2019《基本要求》附录D 云计算应用场景说明。简要理解下图,主要是云计算系统安全保护责任分担原则和云服务模式适用性原则,指导后续的测评对象和指标选取。

ryanzzzzz的博客 4679

Hadoop测试TeraSort

http://www.opstool.com/article/249 使用teragen产生数据 使用Teragen来产生数据,示例如下: hadoop jar hadoop-*-examples.jar teragen 参数1 参数2 teragen的参数解释: 参数1:表示要产生的数据的行数。Teragen每行数据的大小是100B。 要产生1T的数据,需要的

qiezikuaichuan的专栏 1656

别再手动备份了!用Python脚本批量导出华为/华三交换机配置(附完整代码)

本文详细介绍了如何使用Python脚本实现华为/华三交换机配置的自动化备份,大幅提升网络运维效率。通过paramiko库建立SSH连接,结合pandas处理设备清单,实现配置的批量导出与规范化存储,解决传统手动备份耗时易错的问题。

weixin_28737603的博客 449

Hadoop集群管理基础知识笔记

1.Hadoop集群尽量采用ECC内存,否则可能会出现校验和错误,ECC内存有纠错功能。在磁盘方面,尽管namenode建议采用RAID以保护元数据,但是将RAID用于datanode不会给HDFS带来益处,速度依然比HDFS的JBOD(Just a Bunch Of Disks)配置慢。RAID读写速度受制于最慢的盘片,JBOD的磁盘操作都是独立的。而且JBOD配置的HDFS某一磁盘故障可以直接...

书忆江南的IT博客 2365

UDP协议详解——使用Socket通信

UDP(UserDatagramProtocol)是一个简单的面向消息的传输层协议,尽管UDP提供标头和有效负载的完整性验证(通过校验和),但它不保证向上层协议提供消息传递,并且UDP层在发送后不会保留UDP 消息的状态。因此,UDP有时被称为不可靠的数据报协议。如果需要传输可靠性,则必须在用户应用程序中实现。UDP使用具有最小协议机制的简单无连接通信模型。UDP提供数据完整性的校验和,以及用于在数据报的源和目标寻址不同函数的端口号。它没有握手对话,因此将用户的程序暴露在底层网络的任何不可靠的方面。

qq_3517289697的博客 3385

工业级RFID读写器|识读器CK-LR08-E00通过以太网TCPIP自由协议与汇川PLC控制器联机与通讯实例方案

本文以工业级RFID读写器CK-LR08-E00和汇川PLC控制器H5U是实例介绍工业级RFID读写器CK-LR08-E00通过以太网TCPIP自由协议与汇川PLC控制器联机与通讯方案。

华翔天诚科技 4372

Spark性能优化-------shuffle调优

影响一个Spark作业性能的因素,主要还是代码开发,资源参数以及数据倾斜,shuffle调优只能在整个Spark的性能调优中占到一小部分而已。 负责shuffle过程的执行,计算和处理的组件主要就是ShuffleManager。 SortShuffleManager运行原理 SortShuffleManager的运行机制主要分为两种,一种是普通运行机制,另一种是bypass运行机制,

图特摩斯科技-博客 1755

Unity布娃娃系统 Ragdoll Mecanim Mixer使用

6. 选完之后,左键下面的hip等角色各个部位不松开鼠标,拖拽连接到上面Amature的各个部位,如图,下面所有部位都连接完之后,第二步点击Configure Selected Bones确认你的部位连接选择。要做一个布娃娃和动画混合的项目,这个插件是比较不错的,搜了一圈文章教程也是抄来抄去,抄的没有头没有尾,自己摸索着用了一下,记录使用过程吧。8. 之后就点击步骤7图一中的Create Ragdoll,会发现player结构发生变化,如图。4. 添加完脚本之后会显示你的player结构,如图。

SuShengQuanshiW的博客 1649

Hadoop参数性能调优(二)--Map and Reduce tasks 数量

Map and Reduce tasks 数量对性能的影响

学术技术交流,分享生活感悟 1万+

[deprecated]第二章:DRM 框架概述:2.2 GEM显存管理概述

本文深入分析了Linux DRM子系统中GEM(Graphics Execution Manager)的显存管理机制。GEM通过核心数据结构drm_gem_object抽象显存buffer,结合drm_vma_offset_manager和drm_mm实现高效的地址空间分配与管理。该系统支持显存动态分配/回收、用户空间mmap映射、多进程访问隔离和跨设备共享等关键功能,并通过引用计数和同步机制确保并发安全。

图形/计算GPU的驱动与虚拟化技术分享园地 2544

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Terasort 基准测试

Terasort 基准测试 生成数据,teragen 后面生成数据大小,比如我们要生成4GB数据 410241024*1024/100 行数据,因为每一行数据是100B,所有要除以100。 第二个参数是 数据存放目录 /opt/model/hadoop-2.7.6/bin/hadoop jar ./hadoop-mapreduce-examples-2.7.6.jar teragen 42949672 terasort/4GB-input ...

qq_38347727的博客 817

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Hadoop-MapReduce-TeraSort-大数据排序例子

1TB(或1分钟)排序的冠军  作为分布式数据处理的框架,集群的数据处理能力究竟有多快?或许1TB排序可以作为衡量的标准之一。  1TB排序,就是对1TB(1024GB,大约100亿行数据)的数据进行排序。2008年,Hadoop赢得1TB排序基准评估第一名,排序1TB数据耗时209秒。后来,1TB排序被1分钟排序所取代,1分钟排序指的是在一分钟内尽可能多的排序。2009年,在一个1406

train的专栏 9194

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: Hadoop Job Tuning
下一篇: Hadoop平台优化综述
xiejava
博客等级 码龄19年 26粉丝 19原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值