热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深度学习编程环境概念(GPU,Tensorflow,Docker,CUDA,CPU,CUDNN,Keras,Anaconda,PyTorch介绍)

简介

在深度学习过程中经常会遇到GPU, Tensorflow, Docker, CUDA, CPU, CUDNN, Keras, Anaconda, PyTorch等名次概念,也一直理不清这些编程环境的层次,所以做一个总结

总览

深度学习编程环境概念(GPU, Tensorflow, Docker, CUDA, CPU, CUDNN, Keras, Anaconda, PyTorch介绍)
越往下越底层

解释

CPU

中间处理器(CPU,central processing unit)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。

GPU

图形处理器(英语:Graphics Processing Unit,缩写:GPU)。GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作

OS

操作系统(Operating System)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。

CUDA

全称Compute Unified Device Architecture,是一个并行计算平台,同时也是一个API模型,支持C,C++和Fortarn。CUDA定义了GPU的虚拟指令集,使得用户可以直接控制GPU的并行计算单元,编写高效的并行程序。

cuDNN

全称CUDA Deep Neural Network library,基于CUDA提供高度调优的神经网络底层实现,例如卷积、池化、归一化和**函数。支持TensorFlow和PyTorch等多种框架。

简单来说,CPU适合串行计算,擅长逻辑控制。GPU擅长并行高强度并行计算,适用于AI算法的训练学习
CUDA 是NVIDIA专门负责管理分配运算单元的框架
cuDNN是用于深层神经网络的gpu加速库

conda

Conda是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换;
• Conda 是为 Python 程序创建的,用于管理版本和Python环境;
• 目前主流的Conda软件是:Anaconda 和Miniconda;
• Conda的两个重要功能:(1)环境管理 (2)Python包管理;

anaconda与miniconda

Anaconda 是 一 个 开 源 的Python发行版本,其包含了Conda 、 Python 、 Numpy 、Pandas等180多个科学包及其依赖项。
Miniconda 是 Anaconda 的轻量级替代,默认只包含了Python 和 Conda,但是可以通过 Pip 和 Conda 指令来安装所需要的包。
就是说miniconda是简约型anaconda

conda功能

重要功能一:环境管理
– 创建环境:conda create …
– **环境:activate …
– 返回主环境:deactivate …
– 删除环境:conda remove …
– 查看系统中的所有环境:conda info –e

重要功能二:包管理
– 安装库:conda install …
– 查看已经安装的库:conda list
– 查 看 某 个 环 境 的 已 安 装 包 :conda list –n…
– 搜 索 package 的 信 息 : conda search …

conda和pip

深度学习编程环境概念(GPU, Tensorflow, Docker, CUDA, CPU, CUDNN, Keras, Anaconda, PyTorch介绍)
总之,建议将Conda 与Pip 结合起来以创建数据科学环境

docker

容器

传统的虚拟化方式(虚拟机)占用资源多、启动时间长。针对这个问题Linux中发展出了轻量级虚拟化技术——Linux容器(Linux Container, LXC)。LXC不模拟完整的物理机系统,而是通过对进程隔离实现虚拟化。

Docker

Docker是Linux容器的一种封装。Docker将应用程序和需要的所有依赖打包到一个文件里(镜像)。Docker加载镜像可以创建Container(镜像的实例),运行Container后,可以提供同样的应用体验。
深度学习编程环境概念(GPU, Tensorflow, Docker, CUDA, CPU, CUDNN, Keras, Anaconda, PyTorch介绍)

TensorFlow

一个端到端的开源机器学习平台
端到端:该框架可以完成机器学习模型的全部流程,使得训练时可以同时优化整个模型 。
Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算。它可看作一个自动求导工具,在此基础上该平台实现了许多深度学习的基本函数和模型。
深度学习编程环境概念(GPU, Tensorflow, Docker, CUDA, CPU, CUDNN, Keras, Anaconda, PyTorch介绍)

Keras

一个高层的神经网络API,用python实现并且能在TensorFlow、CNTK或者Theano框架上运行。 Keras 的开发重点是支持快速的深度学习实验。

需要注意Keras 2.2.5. 以后的版本仅支持TensorFlow ,并且被封装为TensorFlow的一个模块 tf.keras

pytorch

特点

• 简洁:Pytorch的设计追求最少的封装,尽量避免重复造***;
• 高速:Pytorch的灵活性不以速度为待见,在评测中有良好表现;
• 易用:Pytorch的设计遵循“所思即所得”的理念;
• 扩展性好:Pytorch能无缝接入 Python 生态圈;
• 活跃的社区:Pytorch有完整的使用文档,Facebook人工智能研究院对Pytorch提供了强力的支持。
Pytorch的设计遵循“tensor -> variable(autograd) -> nn.Module”这三个由低到高的抽象层次,分别代表高维数组(张量),自动求导(变量)和神经网络(层/模块):

– 张量(tensor):类似于Numpy的ndarray,可以在GPU上使用来加速计算;
– 自动求导( autograd ):为张量上的所有操作提供了自动求导机制,它是一个在运行时定
义(define-by-run)的框架;
– 神经网络(nn.Module):依赖于autograd包来定义模型并对它们进行求导。

深度学习编程环境概念(GPU, Tensorflow, Docker, CUDA, CPU, CUDNN, Keras, Anaconda, PyTorch介绍)


推荐阅读
  • 干货 | 携程AI推理性能的自动化优化实践
    作者简介携程度假AI研发团队致力于为携程旅游事业部提供丰富的AI技术产品,其中性能优化组为AI模型提供全方位的优化方案,提升推理性能降低成本࿰ ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • mapreduce数据去重的实现方法
    本文介绍了利用mapreduce实现数据去重的方法,同时还介绍了人工智能AI领域中常用的框架和工具,包括Keras、PyTorch、MXNet、TensorFlow和PaddlePaddle,并提供了深度学习实战的代码下载链接。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
  • 语义分割系列3SegNet(pytorch实现)
    SegNet手稿最早是在2015年12月投出,和FCN属于同时期作品。稍晚于FCN,既然属于后来者,又是与FCN同属于语义分割网络 ... [详细]
  • 都会|可能会_###haohaohao###图神经网络之神器——PyTorch Geometric 上手 & 实战
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了###haohaohao###图神经网络之神器——PyTorchGeometric上手&实战相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 代码如下:#coding:utf-8importstring,os,sysimportnumpyasnpimportmatplotlib.py ... [详细]
  • 程序分析与优化9附录XLA的缓冲区指派
    本章是系列文章的案例学习,不属于正篇,主要介绍了TensorFlow引入的XLA的优化算法。XLA也有很多局限性,XLA更多的是进行合并,但有时候如果参数特别多的场景下,也需要进行 ... [详细]
  • 「爆干7天7夜」入门AI人工智能学习路线一条龙,真的不能再透彻了
    前言应广大粉丝要求,今天迪迦来和大家讲解一下如何去入门人工智能,也算是迪迦对自己学习人工智能这么多年的一个总结吧,本条学习路线并不会那么 ... [详细]
  • TensorFlow入门上
    前置准备在阅读本文之前,请确定你已经了解了神经网络的基本结构以及前向传播、后向传播的基本原理,如果尚未了解,可以查看下文。神经网络初探​chrer.com也可以直接在我博客阅读Te ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有