-
要点:神经 络的硬件和软件平台
在课件最开始总结了lecture07讲的关键:
- optimization的选择——SGD+Momentum,Nesterov,RMSProp,Adam
- dropout正则化可以看作是在 络的前向传播过程中加噪 ,同样思想的也有 stochastic pooling,fractional pooling,data augmentation…
- transfer learning注意其与finetune的区别,冻结“特征提取”的所有层
-
硬件平台
CPU(central processing unit)、 GPU(graphics processing unit)、 TPU(tensor processing unit)
GPU编程:CUDA(on NVIDIA only)、 OpenCL(on anything), 注意采用parallel programming。
从硬盘读取数据过程中,注意以下几点:将所有数据读取到RAM中,使用SSD代替HDD硬盘,使用多个CPU线程预取数据。
-
软件平台
framworks: Caffe, Caffe2, Torch, PyTorch, Theano, TensorFlow, MXNet, PaddlePaddle, CNTK ……
它们都可以运行在GPU上,能够自动计算梯度。重点介绍Facebook的Pytorch和Google的TensorFlow。
使用PyTorch的整个代码优化过程:Tensors传统类numpy的前向+后向代码->Autograd简化后向传播过程代码->nn模块简化前向传播代码->optim模块集成的optimization方法,除了使用nn自带的层还可以自定义新的层模块,并且可以将其一并使用在nn.Sequential中。小技巧:使用DataLoader重新定义x和y集合,它不仅提供了集合的数据,还提供minibatching、shuffling、multithreading功能。当然可以利用torchvision使用已有的 络模型,比如torchvision.models.resnet101。同时PyTorch也提供了可视化工具:visdom
使用TensorFlow的整个代码优化过程与PyTorch类似,都是使用了集成的module,不同的是TensorFlow需要写定义出computation graph然后再在tf.Session()中反复运行,而PyTorch是在反复的运行中动态地构建graph。TenorFlow整个的官方资源都相当的完善,官 或github上可学习。TensorFlow的可视化工具:Tensorboard。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!