cs231n spring 2017 lecture8 听课笔记

1. CPU vs. GPU:

  CPU核心少(几个),更擅长串行任务。GPU有很多核心(几千个),每一个核都弱,有自己的内存(几个G),很适合并行任务。GPU最典型的应用是矩阵运算。

  GPU编程:1)CUDA,只能在英伟达;2)OpenCL类似CUDA,好处是可以跑在任何平台上,但相对慢一些。深度学习可以直接调用现成的库,不用自己写CUDA代码。

  用cuDNN比不用快几倍。

  深度学习的瓶颈可能不在GPU的运算,而在GPU和数据的通信上,解决办法是:1)把数据读入RAM;2)用SSD而不是HDD;3)用CPU多线程提前读取数据。

2. 深度学习框架:Caffe(UC Berkeley)/Caffe2(Facebook), Torch(NYU, Facebook)/PyTorch(Facebook), Theano(U Montreal)/TensorFlow(Google), Paddle(Baidu), CNTK(Microsoft), MXNet(Amazon).

  框架分为static(TensorFlow、Caffe2)和dynamic(PyTorch)。TensorFlow是很安全的选择。PyTorch最适合做研究。TensorFlow和Caffe2更适合实际部署应用。

时间: 2024-08-30 10:41:26

cs231n spring 2017 lecture8 听课笔记的相关文章

cs231n spring 2017 lecture9 听课笔记

参考<deeplearning.ai 卷积神经网络 Week 2 听课笔记>. 1. AlexNet(Krizhevsky et al. 2012),8层网络. 学会计算每一层的输出的shape:对于卷积层,输出的边长 =(输入的边长 - filter的边长)/ 步长 + 1,输出的通道数等于filter的数量.每个filter的通道数等于输入的通道数.卷积层的参数 = filter的长 * filter的宽 * 输入的通道数 * filter的数量.池化层没有需要学习的参数. 图中分成两个通

cs231n spring 2017 lecture7 听课笔记

1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很大的loss function,一个方向梯度变化明显,另一个方向梯度变化很缓慢,SGD在优化过程中会震荡着下降,导致优化很慢.深度学习的网络会有上百万甚至更多的参数需要优化,在这个上百万维的空间里,更容易出现各个维度梯度变化差别很大的问题. 2)陷落在局部最小点或者鞍点(saddle point).

cs231n spring 2017 lecture11 听课笔记

1. Semantic Segmentation 把每个像素分类到某个语义. 为了减少运算量,会先降采样再升采样.降采样一般用池化层,升采样有各种"Unpooling"."Transpose Convolution"(文献中也叫"Upconvolution"之类的其他名字). 这个问题的训练数据的获得非常昂贵,因为需要一个像素一个像素的贴标签. 2. Classification + Localizatoin 一般用同一个网络,一方面得出分类,一

cs231n spring 2017 lecture12 听课笔记

这一节课很零碎. 1. 神经网络到底在干嘛? 浅层的是具体的特征(比如边.角.色块等),高层的更抽象,最后的全连接层是把图片编码成一维向量然后和每一类标签作比较.如果直接把图片和标签做像素级的最近领域分类,误差很大,但是转成编码之后就准多了. 可以用PCA可视化最后一层的特征,深度学习领域更高阶的做法是用t-SNE(Van der Maaten and Hinton, "Visualizting Data using t-SNE", JMLR 2008). 可视化非线性函数的激活值也可

cs231n spring 2017 lecture15 Efficient Methods and Hardware for Deep Learning 听课笔记

1. 深度学习面临的问题: 1)模型越来越大,很难在移动端部署,也很难网络更新. 2)训练时间越来越长,限制了研究人员的产量. 3)耗能太多,硬件成本昂贵. 解决的方法:联合设计算法和硬件. 计算硬件可以分为通用和专用两大类.通用硬件又可以分为CPU和GPU.专用硬件可以分为(FPGA和ASIC,ASIC更高效,谷歌的TPU就是ASIC). 2. Algorithms for Efficient Inference 1)Pruning,修剪掉不那么重要的神经元和连接.第一步,用原始的网络训练:第

cs231n spring 2017 lecture16 Adversarial Examples and Adversarial Training 听课笔记

(没太听明白,以后再听) 1. 如何欺骗神经网络? 这部分研究最开始是想探究神经网络到底是如何工作的.结果人们意外的发现,可以只改变原图一点点,人眼根本看不出变化,但是神经网络会给出完全不同的答案.比如下图,左边的熊猫被识别成熊猫,但是加上中间的小"噪音"一样的数值,右图的熊猫就识别不出来了.而且这个小"噪音"不是随机的,它更像是offset,是某种系统误差,叠加到图片上去,总是可以欺骗神经网络. 2. 神经网络从权重到输出的映射是非线性的,非常复杂,非常难优化.训

《Spring实战》读书笔记--使用SpringMVC构建REST API

<Spring实战>读书笔记--使用SpringMVC构建REST API 1. REST介绍 REST(Representational State Transfer):表述性状态转移,是基于HTTP.URI.MIME(HTML.JSON等)协议的Web软件架构.它不同于SOAP Web服务(RPC)关注处理,面向行为,其更关注要处理的数据,面向资源. 1.1 <Spring实战>中是这样描述REST的: 为了理解REST是什么,我们将它的首字母缩写才拆分为不同的构成部分: 表述

老男孩培训视频听课笔记一(在51cto上听的)

学习Linux的系统环境准备     1.系统选择centos 5.8/centos 6.4     2.环境:VMware workstation win7 vim 8.0 虚拟机软件选择与实践安装VMware软件    安装VMware workstation 8.0 win7-VMware上新建虚拟机及涉及技术讲解    创建虚拟机:     名字:mode vim-cs5.8     CPU:1-1 内存 128M--5.8 6.4-256M     硬盘:虚拟的硬盘 6G 获得cent

老男孩培训视频听课笔记二(在51cto上听的)

centos 5.8 文本安装过程    引导采用默认,引导不用设置密码    网络配置,根据实际情况配置,网关是网络出口的地址,一般为wlan出口的路由器的地址或者是代理服务器的内网IP    DNS简单解说图:      主机名--时区--root密码    选择自定义系统安装包--最小化(安全方便工作,建议安装以下的组)      ·base-- 基础      ·editors-编辑器      ·development librarays--开发库      ·development