博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习常用的5种学习框架
阅读量:6151 次
发布时间:2019-06-21

本文共 2696 字,大约阅读时间需要 8 分钟。

随着深度学习和人工智能在最近这几年的迅速发展,有许多的深度学习框架的引入。深度学习框架的创建目标是在GPU上高效运行深度学习系统,它们都依赖于计算机图的概念,计算图定义了需要执行的计算顺序。这些框架中你使用的是一种可以建立计算图的证语言,但它语言执行的机制与其宿主语言本身机制有所不同。最后,计算图可以并行地在目标GPU中优化和运行。那常见的有以下这几种深度学习框架

1. TensorFlow (Google)

最初是由 的研究人员的工程师所研发的。他们目的是面向深度神经网络和机器智能方面的研究。2015年底,。TensorFlow 对于快速基于图形计算方面非常有用。现在的版本,灵活的TensorFlow API 可以通过其 GPU 支持的架构在多个设备之间快速部署模型。

TensorFlow 生态系统主要有以下三个组成部分:

  • 用C++ 编写的 包含用于定义模型的使用数据训练模型的API, 也是有一个友好的Python接口。
  • 是一个可视化工具包,它可以帮助分析,可视化和调试 TensorFlow 计算图。
  • 是一种灵活的高性能服务系统, 用于在生产环境中部署预先训练好的机器学习模型。Serving 也是由C++ 编写并可通过Python 接口访问,可以即时从旧模式切换到新模式.

TersorFlow 目前已经被广泛应用于学术研究的工业应用。但有一些值得注意的是当前用途包括、、、、。都可以在TensorFlow的中查看一些官方用途、研究模型、示例和教程。

以下是一个运行的示例, 在这里,在tensorFlow上用随机数据训练一个期于L2损失的2层ReLU网络。

import numpy as npimport tensorflow as tf#Batch size = 32, Input Dimension = 500, Hidden Dimension = 50x = tf.placeholder(tf.float32, shape=(32, 500))y = tf.placeholder(tf.float32, shape=(32, 500))w1 = tf.placeholder(tf.float32, shape=(500, 50))w2 = tf.placeholder(tf.float32, shape=(50, 500))# Forward passh = tf.maximum(tf.matmul(x,w1), 0)y_pred = tf.matmul(h, w2)diff = y_pred - y# Use predefined common lossesloss = tf.losses.mean_squared_error(y_pred, y)# Compute loss of gradientgrad_w1, grad_w2 = tf.gradients(loss, [w1, w2])# run the graph multiple timeswith tf.Session() as sess:    # Create numpy arrays    values = {x: np.random.randn(32, 500),              w1: np.random.randn(500, 50),              w2: np.random.randn(50, 500),              y: np.random.randn(32, 500)}# Train the networklearning_rate = 1e-5# Run the graph in a loopfor t in range(20):    out = sess.run([loss, grad_w1, grad_w2], feed_dict=values)    loss_val, grad_w1_val, grad_w2_val = out    values[w1] -= learning_rate * grad_w1_val    values[w2] -= learning_rate * grad_w2_val        复制代码

代码中有两个组件: 定义计算图并多次运行这个定义的计算图。 定义计算图的时候, 输入x, 权重w1和w2 以级目标y 创建placeholders 进行占位。在向前传播中,计算目标y 的预测以级损失值(损失值为y的真实值与预测值之间L2距离). 最后让TensorFlow 计算关于 w1 和w2 的梯度损失。

完成计算图构建之后,创建一个会话框来运行计算图。 这里创建了numpy 数组, 它将填充图创建的占位符,将它们数值提供给x,y,w1,w2, 为了训练网络,反复运行计算图,使用梯度来更新权重然后获得loss,grad_w1 和grad_w2的numpy数组。

2. Theano (蒙特利尔大学)

是另一个用于快速数值计算的 Python 库,可以在CPU 或GPU 上运行。 它是 开发的一个开源项目。它的一些最突出的特性包括GPU 的透明使用,与NumPy 相结合,高效的符号区分,速度/稳定性优化以级大量的单元测试。但!MILA 实验室负责人在 2017年11月宣布他们不再积极维护或开发Theano。 其原因是在于Theano 多年来推出的。以下是。

3. PyTorch (Facebook)

在学术研究者中很受欢迎, 也是相对比较新的深度学习框架。 Facebook 人工智能研究组开发了pyTorch 来应对一些在它前任数据库Torch 使用中遇到的问题。但它的编程语言Lua 的普及程度不高, 因此 Torch 没办法像 Google TensorFlow 那样的迅猛发展。PyTorch 采用了被已经为许多研究人员、开发人员和数据科学家所熟悉的原始Python 命令式编程风格。

4. Torch (NYU / Facebook)

Torch 是Facebook 的 、 和基于 。 它提供了广泛的深度学习算法,被 Facebook 、IBM 、Yandex 和其他公司用于解决数据流的硬件问题。

5. Caffe (UC Berkeley)

是一个兼具表达性、速度的思维模块化的深度学习框架。 由伯克利人工智能研究小组和伯克利视觉学习中心开发。虽然它的内核是用C++编写的、但Caffe 有Python 和 Matlab 相关接口。

转载地址:http://olzfa.baihongyu.com/

你可能感兴趣的文章
并发容器之CopyOnWriteArrayList(转载)
查看>>
什么是AAC音频格式 AAC-LC 和 AAC-HE的区别是什么
查看>>
原创:goldengate从11.2升级到12.1.2
查看>>
Quartz
查看>>
正则表达式的语法规则
查看>>
C#一个关于委托和事件通俗易懂的例子
查看>>
类似于SVN的文档内容差异对比工具winmerge
查看>>
Cause: java.sql.SQLException: The user specified as a definer ('root'@'%') does not exist
查看>>
quratz线程
查看>>
execnet: rapid multi-Python deployment
查看>>
windows修改3389端口
查看>>
关于JavaScript词法
查看>>
FreeSwitch中的会议功能(4)
查看>>
MySQL中创建用户分配权限(到指定数据库或者指定数据库表中)
查看>>
监控利器--nagios
查看>>
ubuntu安装和查看已安装
查看>>
通过ping检测网络故障的典型次序
查看>>
Android事件处理的两种模型
查看>>
Linux 强大的nohup(进程后台执行)
查看>>
ajax调接口
查看>>