当前位置:网站首页>【研究生工作周报】
【研究生工作周报】
2022-08-09 14:56:00 【wangyunpeng33】
学习目标(第一周):
了解和学习深度学习框架
- 一周熟悉主流深度学习框架并尝试搭建
- tensorflow
- pytorch
学习内容:
- 了解主流深度学习框架的优势,特点以及应用场景
- 搭建 pytorch框架
- 初识stanford吴恩达教授深度学习课程
学习时间:
- 5.7~5.14
学习产出:
- CSDN 技术博客 1 篇
- 习得 vlog 视频 1 个
- 完成 pytorch框架搭建
框架介绍
近年来随着深度学习的发展,出现很多深度学习框架。比如TensorFlow,Pytorch,Keras,Chainer,Paddle飞浆等。
这些深度学习框架提供神经网络单元,损失函数和优化器,用来帮助我们组装和训练神经网络模型。Tensorflow和Pytorch是两个使用最广泛的深度学习框架。
当我们初入人工智能和深度学习领域,TensorFlow 和 PyTorch 应该选择哪个框架? 通过对教程的学习,这里从易用性、训练时间、训练精度、内存使用、使用趋势等方面简要分析一下。
Tensorflow 2.0
Tensorflow是由谷歌支持的开源框架。Tensorflow2.0专注于自己简洁性和易用性。
在训练方面:
使用tk.keras和eager execution轻松构建模型。为研究提供强大的实验工具。在研究方面:
为研究提供强大的实验工具。
tk.keras: 允许创建复杂的拓扑,包括使用残差层,自定义多输入输出模型以及强制编写的正向传递。轻松创建自定义训练循环。低级TensorFlow API始终可用,并与更高级别的抽象一起工作,以实现完全可定制的逻辑。在部署方面:
在任意平台上实现稳健的生产环境模型部署,不论是在服务器上,边缘设备还是网页上,也不论你是用的是什么语言或平台,TensorFlow 总能让你轻易训练和部署模型。数据可视化:
Tensorflow提供了TensorBoard可视化工具,可以图形方式可视化数据。它还允许对节点进行简单调试,查看代码的执行状况,帮助解决神经网络问题。兼容性:
Tensorflow与多种语言兼容,如C++,JavaScript,Python,C#,Ruby,and Swift。硬件支持
Tensorflow在GPU和CPU系统中使用不同的分配策略。Tensorflow还可以使用TPU,其计算速度比GPU和CPU快。
Pytorch
Pytorch是一个能在CPU和GPU上运行并解决各类深度学习问题的深度学习框架。可以看作是支持GPU计算和自动微分计算的Numpy库。Pytorch是一个灵活,容易学习的Python库,在学术和研究领域Pytorch是一个最受欢迎的深度学习库。
Pytorch框架的产生受到Torch和Chainer这两个框架的启发。与Torch使用Lua语言相比,Pytorch是一个Python优先的框架,我们可以继承Pytorch类然后自定义。与Chainer类型相比,Pytorch框架具有自动求导的动态图功能,也就是所谓的define by run,即当Python解释器运行到相应的行时才创建计算图。
Pytorch特点
- 易于使用的API
- Python的支持
Pytorch可以顺利与Python数据科学栈集成。非常类似于Numpy - 动态计算图
取代了具有特定优势的静态图,Pytorch为我们提供了一个框架,以便可以在运行时构建计算图,甚至在运行时更改它们。 - 支持分布式训练
Pytorch可实现研究和生产中的分布式训练和性能优化。 - 部署方便
Pytorch提供了可用于大规模部署Pytorch模型的工具。 - 强大的生态系统
Pytorch具有丰富的工具和库生态系统,为计算机视觉,NLP等方面的开发提供便利。 - 内置开放神经网络互换协议(ONNX)
可以很方便与其他深度学习框架互操作。
性能比较

上边的基准旨在通过将Pytorch的单机eager模型性能与基于图形的深度学习框架Tensorflow进行比较,从而展示其整体性能。
精度比较

对于给定相同的训练模型和数据集进行训练,两个框架都能够准确地实现神经网络训练,并能够产生相同的结果。
- 因此我们得出结论两种模型精度基本一致
训练时间
前面图也显示了Tensorflow和Pytorch的训练时间。图中显示Tensorflow的训练时间(平均11.19s)比Pytorch(平均7.67s)更长一些。
- 结论:Pytorch训练时间更优秀一点
内存使用比较
与Pytorch的内存使用量(3.5GB RAM)相比,TensorFlow(1.7GB RAM)训练期间内存使用显著降低,两种框架在训练期间内存使用上都略有一些变化幅度,在初始加载数据时内存使用率较高:TensorFlow(4.8GB),Pytorch(5GB)。
- 结论:TensorFlow内存使用效率更高
易用性比较
Pytorch使用面向对象编程的方式构建网络。
TensorFlow在创建网络和训练方便使用高阶低阶相结合的方式。
低阶方法允许采用用户更自定义的方法来形成神经网络,从而实现更专业化的功能。
高阶的API使用tk.Keras,封装的更好,简明易用,适合入门和教授基本概念。
- 主观上认为两种模型易用性不分伯仲
应用比较


自2017年后Pytorch开发出后,Pytorch在各大会议论文中占比迅速增长,一跃成为最受欢迎的深度学习框架。
目前,在学术界Pytorch已经超越TensorFlow,因其简单易上手,被广大Reasearch使用。在工业界TensorFlow的生态更有利于快速部署,依旧无可取代。
- 二者应用上同样不分伯仲
图片数据来源于b站up主人工智能学习课程
通过安装Anaconda搭建Pytorch框架
常见conda指令以及切换清华源下载pytorch
切换清华大学源conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --set show_channel_urls yes
Pytorch 清华源conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
用conda创建新的环境conda create --name 新环境名 python=版本号
切换环境命令conda activate 环境名
安装Pytorchconda install pytorch torchvision cudatoolkit=版本号
退出环境conda deactivate
删除环境(删除需谨慎)conda remove -n 环境名 --all
删除清华源并切换回原版源conda config --remove-key channels
激活环境,输入python,进入python开发环境中测试是否安装成功import torchtorch.cuda.is_available()

Stanford吴恩达教授深度学习课程
计划在下次周报中列出详细课程规划
本周就课程中第一门《神经网络与深度学习》Week1 深度学习概论进行学习。明白什么是神经网络,用神经网络进行监督学习,将深度学习应用于推荐系统,计算机视觉,语音识别,自动驾驶等领域,尝试着做了课程网站关于第一门课的十道选择检验自己的理解,帮助自己在后续课程中理解全部概念。
边栏推荐
猜你喜欢
随机推荐
函数调用约定
stream去重相同属性对象
ASP.Net Core实战——初识.NetCore
spark shuffle
抱抱脸(hugging face)教程-中文翻译-使用 AutoClass 加载预训练的实例
Left-handed and Right-handed Binary Sorted Trees
Inverted order at the beginning of the C language 】 【 string (type I like Beijing. Output Beijing. Like I)
什么是跨境电商测评?
路由的懒加载与接口的封装
PAT1027 Printing Hourglass
YOLOV1详解
More than pytorch from zero to build neural network to realize classification (training data sets)
【C语言初阶】详解分支语句
.Net Core后台任务启停(BackgroundService)
Noun concept summary (not regularly updated ~ ~)
pyspark dataframe分位数计算
如何在实际操作中进行亚马逊测评
The recycle bin has been showed no problem to empty the icon
Example of file operations - downloading and merging streaming video files
深度神经网络中的多任务学习研究综述









