Hadoop MapReduce
Map采用一组数据并将其转换为另一组数据,其中各个元素被分解为元组(键/值对)。
其次,reduce任务,它将map的输出作为输入,并将这些数据元组合并成一组较小的元组。
Hadoop Yarn
YARN的基本思想是将资源管理和作业调度/监控的功能分为独立的守护进程。
想法是拥有一个全局ResourceManager(RM)和每个应用程序的ApplicationMaster(AM)。应用程序是单个作业或作业的DAG。
ResourceManager和NodeManager构成数据计算框架。ResourceManager是在系统中的所有应用程序之间仲裁资源的最终权力。
NodeManager是负责容器的每机器框架代理,监视其资源使用情况(cpu,内存,磁盘,网络)并将其与ResourceManager / Scheduler进行报告。
每个应用程序ApplicationMaster实际上是一个框架特定的库,任务是从ResourceManager协商资源,并与NodeManager一起执行和监视任务。
TensorFlow 采用数据流图 用于数值计算
在TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库
Softmax回归模型, 经常取大,偶尔取小
NumPy是Python的一种开源的数值计算扩展。
这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))
Session 的context执行graph(计算任务),将graph中的 op(一个 op 获得 0 个或多个 tensor数据, 执行计算, 产生 0 个或多个 Tensor. ) 分发到设备 上,执行 op
变量 (Variable) :维护状态.
feed 和 fetch :为任意op 修改数据.
每个 Tensor 是一个类型化的多维数组. 你可以将一小组图像集表示为一个四维浮点数数组, 这四个维度分别是 [batch, height, width, channels]
构建阶段, op 的执行步骤 被描述成一个图.
执行阶段, 使用会话执行执行图中的 op,返回的 tensor 是 numpy ndarray 对象;
TensorFlow Python 库有一个默认图 (default graph), op 构造器可以为其增加节点. 这个默认图对 许多程序来说已经足够用了
tf.placeholder(dtype, shape=None, name=None) #shape:默认是None,就是一维值,也可以是多维,如[2,3], [None, 3]表示列是3,行不定
tf数1=tf.Variable(0, name="counter") #类似counter=0
tf数2=tf.constant(1) #类似const one=1
tf加法=tf.add(tf数1, tf数2) #加法
操作= tf.assign(tf数1, tf加法)
session.run(操作,feed_dict={插入前面占位符的数据})
图像分类,监督学习
Cifar-10 由60000张32*32的 RGB 彩色图片构成,共10个分类。50000张训练,10000张测试(交叉验证)。
每个图像的32 x 32 x 3 = 3072值
对于10个类中的每一个,我们的3072个像素值的总和由该类别的3072个参数权重加权获得单个总分。
最后,我们有10个分数,每个分类一个。然后我们看看哪个分数最高,这就是图片的类标签。logits: 未归一化的概率 这就是TensorFlow发挥其魔力的地方。它可以计算相对于参数值的损失梯度。然后相应地调整所有参数值,重新启动过程,并将下一组图像输入到模型中。