-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdb.json
More file actions
1 lines (1 loc) · 257 KB
/
db.json
File metadata and controls
1 lines (1 loc) · 257 KB
1
{"meta":{"version":1,"warehouse":"4.0.2"},"models":{"Asset":[{"_id":"source/CNAME","path":"CNAME","modified":1,"renderable":0}],"Cache":[{"_id":"source/CNAME","hash":"dd6b00be73f5f65cdc26a3a88325c4a6249967cb","modified":1679579273212},{"_id":"source/Gallery/index.md","hash":"fe53d8cadf6aa4ad2c784a471b95b77585276f37","modified":1679579273211},{"_id":"source/_posts/HRNet.md","hash":"8fef51b53096e204890ae78fc172747246144223","modified":1679579273193},{"_id":"source/_posts/Ubuntu 20.04下深度学习环境搭建以及常用工具配置.md","hash":"1049ca5dbeb40bd3bdbc7e8c614ecd10b6b2c4aa","modified":1700411104729},{"_id":"source/_data/link.yml","hash":"941165eb05d7eda3b7d46a9d2ae8dcadf6e06c70","modified":1679579273193},{"_id":"source/_posts/今日随笔.md","hash":"560d4996653c2ef30152e8a0a53b880c6f3a7ec6","modified":1679579273211},{"_id":"source/_posts/ubuntu的使用.md","hash":"bdcf6521b50527074316d75d595716dfb173d23e","modified":1679579273194},{"_id":"source/_posts/学术交流分享ActionFormer.md","hash":"a6735a95071ce2928bd35a78769aab5bd3cdd26e","modified":1679579273212},{"_id":"source/categories/index.md","hash":"308469ca7b9052acd96c8525025d1ae38716feb7","modified":1679579273211},{"_id":"source/_posts/我的生活.md","hash":"5be39a00e8690d84259dbcf6615c36757748d033","modified":1679579273192},{"_id":"source/_posts/记录第一次搭博客.md","hash":"9a80e41f1bcea782a27f153afd2adce205cf1e32","modified":1679579273213},{"_id":"source/_posts/浅谈《原神》游戏的理解.md","hash":"9d196affac8afe315945cca07d1adce82f546773","modified":1679579273213},{"_id":"source/about/index.md","hash":"d03556f614c3ef5ac21d7120f1dfb61586b97de4","modified":1679579273212},{"_id":"source/movies/index.md","hash":"cd8ced84fd61b083668ae24cf3be1a99756cf4e0","modified":1679579273213},{"_id":"source/link/index.md","hash":"dd3b74d3b6bad1b12def6829e95408997a95f38f","modified":1679579273213},{"_id":"source/music/index.md","hash":"2fafc4f240aa3c265bfc582a846ad9884d27805e","modified":1679579273214},{"_id":"source/photos/index.md","hash":"c154eb4860c3a2e608df867d4303ebd348bfb973","modified":1679579273214},{"_id":"source/tags/index.md","hash":"a7330dee445f15cf7efd2060c6269254ddf544bf","modified":1679579273214},{"_id":"public/atom.xml","hash":"5df65790281a1f1d5b59a581c267c9ef39dd6d1b","modified":1709389856940},{"_id":"public/sitemap.txt","hash":"f03bae89e6b6a281afe42be32b239a966641ab60","modified":1709389856940},{"_id":"public/sitemap.xml","hash":"b95cad3d6e074ba8d528f200330be2179d7925aa","modified":1709389856940},{"_id":"public/Gallery/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/categories/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/about/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/movies/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/link/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/music/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/tags/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/photos/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/2023/02/07/浅谈《原神》游戏的理解/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/2022/11/10/学术交流分享ActionFormer/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/2022/11/02/ubuntu的使用/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/2022/09/21/HRNet/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/2022/05/10/今日随笔/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/2022/04/10/Ubuntu 20.04下深度学习环境搭建以及常用工具配置/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/2020/10/31/记录第一次搭博客/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/2021/12/29/我的生活/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/categories/姿态估计/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/categories/深度学习/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/categories/Ubuntu/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/categories/生活/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/categories/时序定位/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/archives/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/archives/2020/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/archives/2020/10/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/archives/2021/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/archives/2021/12/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/archives/2022/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/archives/2022/04/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/archives/2022/05/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/archives/2022/09/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/archives/2022/11/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/archives/2023/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/archives/2023/02/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/tags/深度学习/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/tags/Ubuntu/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/tags/记录生活/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/tags/ActionFormer/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/tags/生活/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/tags/随笔/index.html","hash":"da39a3ee5e6b4b0d3255bfef95601890afd80709","modified":1709389856940},{"_id":"public/CNAME","hash":"dd6b00be73f5f65cdc26a3a88325c4a6249967cb","modified":1709389856940}],"Category":[{"name":"姿态估计","_id":"clta6l3uw00043svxait06mnt"},{"name":"深度学习","_id":"clta6l3uz000b3svx1op9eo1a"},{"name":"Ubuntu","_id":"clta6l3v1000i3svxcms9b29n"},{"name":"生活","_id":"clta6l3v2000n3svxg20v4178"},{"name":"时序定位","_id":"clta6l3v9000u3svx8j7gd4d4"}],"Data":[{"_id":"link","data":[{"class_name":"友情链接","class_desc":"那些人,那些事","link_list":[{"name":"冉崇治","link":"http://resetran.top/","avatar":"https://gcore.jsdelivr.net/gh/ranchongzhi/ranchongzhi.github.io@master/medias/logo.png","descr":"王者打野贼溜的NeRF研究者"},{"name":"六个骨头","link":"http://www.bone6.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/zhan.jpg","descr":"飞桨开发者专家"},{"name":"Evan CHEN","link":"https://lhchen.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/_8RG~~1E221F8I(K2FUV4KJ.bmp","descr":"保研清深的图表示学习、语音驱动生成大牛"},{"name":"BB酱","link":"https://www.bbbbchan.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/bb.jpg","descr":"南开大学分割领域强者"},{"name":"sund","link":"http://www.sund-xys.cn/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/sund.jpg","descr":"西交网络&无线&侧信道大爹"},{"name":"冯玉龙","link":"http://bestxinyu.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/feng.jpg","descr":"又一个大佬"},{"name":"西电浪潮俱乐部","link":"http://www.xdu-inspur.club/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/inspur.jpg","descr":"在西电的技术性交流社团"}]},{"class_name":"网站","class_desc":"值得推荐的网站","link_list":[{"name":"跟李沐学AI的入门课","link":"https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/20221004001647.png","descr":"视频网站"},{"name":"OpenMMLab","link":"https://openmmlab.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/httpsi.loli.net202005145VyHPQqR6LWF39a.png.png","descr":"比较综合性的AI框架"}]}]}],"Page":[{"title":"GALLERY","date":"2020-10-31T16:12:05.000Z","type":"Gallery","comments":0,"_content":"","source":"Gallery/index.md","raw":"---\ntitle: GALLERY\ndate: 2020-10-31 16:12:05\ntype: \"Gallery\"\ncomments: false\n---\n","updated":"2023-03-23T13:47:53.211Z","path":"Gallery/index.html","layout":"page","_id":"clta6l3uq00003svxawq3h5eh","content":"","site":{"data":{"link":[{"class_name":"友情链接","class_desc":"那些人,那些事","link_list":[{"name":"冉崇治","link":"http://resetran.top/","avatar":"https://gcore.jsdelivr.net/gh/ranchongzhi/ranchongzhi.github.io@master/medias/logo.png","descr":"王者打野贼溜的NeRF研究者"},{"name":"六个骨头","link":"http://www.bone6.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/zhan.jpg","descr":"飞桨开发者专家"},{"name":"Evan CHEN","link":"https://lhchen.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/_8RG~~1E221F8I(K2FUV4KJ.bmp","descr":"保研清深的图表示学习、语音驱动生成大牛"},{"name":"BB酱","link":"https://www.bbbbchan.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/bb.jpg","descr":"南开大学分割领域强者"},{"name":"sund","link":"http://www.sund-xys.cn/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/sund.jpg","descr":"西交网络&无线&侧信道大爹"},{"name":"冯玉龙","link":"http://bestxinyu.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/feng.jpg","descr":"又一个大佬"},{"name":"西电浪潮俱乐部","link":"http://www.xdu-inspur.club/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/inspur.jpg","descr":"在西电的技术性交流社团"}]},{"class_name":"网站","class_desc":"值得推荐的网站","link_list":[{"name":"跟李沐学AI的入门课","link":"https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/20221004001647.png","descr":"视频网站"},{"name":"OpenMMLab","link":"https://openmmlab.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/httpsi.loli.net202005145VyHPQqR6LWF39a.png.png","descr":"比较综合性的AI框架"}]}]}},"excerpt":"","more":""},{"title":"分类","date":"2020-10-30T20:06:46.000Z","type":"categories","comments":0,"_content":"","source":"categories/index.md","raw":"---\n\ntitle: 分类\ndate: 2020-10-30 20:06:46\ntype: \"categories\"\ncomments: false\n---","updated":"2023-03-23T13:47:53.211Z","path":"categories/index.html","layout":"page","_id":"clta6l3uu00023svx00ni6f1p","content":"","site":{"data":{"link":[{"class_name":"友情链接","class_desc":"那些人,那些事","link_list":[{"name":"冉崇治","link":"http://resetran.top/","avatar":"https://gcore.jsdelivr.net/gh/ranchongzhi/ranchongzhi.github.io@master/medias/logo.png","descr":"王者打野贼溜的NeRF研究者"},{"name":"六个骨头","link":"http://www.bone6.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/zhan.jpg","descr":"飞桨开发者专家"},{"name":"Evan CHEN","link":"https://lhchen.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/_8RG~~1E221F8I(K2FUV4KJ.bmp","descr":"保研清深的图表示学习、语音驱动生成大牛"},{"name":"BB酱","link":"https://www.bbbbchan.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/bb.jpg","descr":"南开大学分割领域强者"},{"name":"sund","link":"http://www.sund-xys.cn/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/sund.jpg","descr":"西交网络&无线&侧信道大爹"},{"name":"冯玉龙","link":"http://bestxinyu.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/feng.jpg","descr":"又一个大佬"},{"name":"西电浪潮俱乐部","link":"http://www.xdu-inspur.club/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/inspur.jpg","descr":"在西电的技术性交流社团"}]},{"class_name":"网站","class_desc":"值得推荐的网站","link_list":[{"name":"跟李沐学AI的入门课","link":"https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/20221004001647.png","descr":"视频网站"},{"name":"OpenMMLab","link":"https://openmmlab.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/httpsi.loli.net202005145VyHPQqR6LWF39a.png.png","descr":"比较综合性的AI框架"}]}]}},"excerpt":"","more":""},{"title":"关于我","date":"2020-10-31T16:07:07.000Z","type":"about","comments":0,"_content":"\n# 个人介绍\n\n本人是西安电子科技大学18级本科生,22级西电研一,主要学习AI相关的内容,目前在研究视频理解相关领域,以及多模态医学数据处理,平时比较懒,但也想折腾点有意思的东西,博客大部分时间闲置,有时间了就学点技术做点分享好了,顺便发点论文阅读的内容。\n\n","source":"about/index.md","raw":"---\ntitle: 关于我\ndate: 2020-10-31 16:07:07\ntype: \"about\"\ncomments: false\n---\n\n# 个人介绍\n\n本人是西安电子科技大学18级本科生,22级西电研一,主要学习AI相关的内容,目前在研究视频理解相关领域,以及多模态医学数据处理,平时比较懒,但也想折腾点有意思的东西,博客大部分时间闲置,有时间了就学点技术做点分享好了,顺便发点论文阅读的内容。\n\n","updated":"2023-03-23T13:47:53.212Z","path":"about/index.html","layout":"page","_id":"clta6l3ux00063svxa1iw8atv","content":"<h1 id=\"个人介绍\"><a href=\"#个人介绍\" class=\"headerlink\" title=\"个人介绍\"></a>个人介绍</h1><p>本人是西安电子科技大学18级本科生,22级西电研一,主要学习AI相关的内容,目前在研究视频理解相关领域,以及多模态医学数据处理,平时比较懒,但也想折腾点有意思的东西,博客大部分时间闲置,有时间了就学点技术做点分享好了,顺便发点论文阅读的内容。</p>\n","site":{"data":{"link":[{"class_name":"友情链接","class_desc":"那些人,那些事","link_list":[{"name":"冉崇治","link":"http://resetran.top/","avatar":"https://gcore.jsdelivr.net/gh/ranchongzhi/ranchongzhi.github.io@master/medias/logo.png","descr":"王者打野贼溜的NeRF研究者"},{"name":"六个骨头","link":"http://www.bone6.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/zhan.jpg","descr":"飞桨开发者专家"},{"name":"Evan CHEN","link":"https://lhchen.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/_8RG~~1E221F8I(K2FUV4KJ.bmp","descr":"保研清深的图表示学习、语音驱动生成大牛"},{"name":"BB酱","link":"https://www.bbbbchan.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/bb.jpg","descr":"南开大学分割领域强者"},{"name":"sund","link":"http://www.sund-xys.cn/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/sund.jpg","descr":"西交网络&无线&侧信道大爹"},{"name":"冯玉龙","link":"http://bestxinyu.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/feng.jpg","descr":"又一个大佬"},{"name":"西电浪潮俱乐部","link":"http://www.xdu-inspur.club/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/inspur.jpg","descr":"在西电的技术性交流社团"}]},{"class_name":"网站","class_desc":"值得推荐的网站","link_list":[{"name":"跟李沐学AI的入门课","link":"https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/20221004001647.png","descr":"视频网站"},{"name":"OpenMMLab","link":"https://openmmlab.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/httpsi.loli.net202005145VyHPQqR6LWF39a.png.png","descr":"比较综合性的AI框架"}]}]}},"excerpt":"","more":"<h1 id=\"个人介绍\"><a href=\"#个人介绍\" class=\"headerlink\" title=\"个人介绍\"></a>个人介绍</h1><p>本人是西安电子科技大学18级本科生,22级西电研一,主要学习AI相关的内容,目前在研究视频理解相关领域,以及多模态医学数据处理,平时比较懒,但也想折腾点有意思的东西,博客大部分时间闲置,有时间了就学点技术做点分享好了,顺便发点论文阅读的内容。</p>\n"},{"title":"那些年,我们看过的电影","date":"2018-01-05T00:00:00.000Z","comments":0,"_content":"","source":"movies/index.md","raw":"---\ntitle: 那些年,我们看过的电影\ndate: 2018-01-05 00:00:00\ncomments: false\n---","updated":"2023-03-23T13:47:53.213Z","path":"movies/index.html","layout":"page","_id":"clta6l3uy00083svx4xg12ut7","content":"","site":{"data":{"link":[{"class_name":"友情链接","class_desc":"那些人,那些事","link_list":[{"name":"冉崇治","link":"http://resetran.top/","avatar":"https://gcore.jsdelivr.net/gh/ranchongzhi/ranchongzhi.github.io@master/medias/logo.png","descr":"王者打野贼溜的NeRF研究者"},{"name":"六个骨头","link":"http://www.bone6.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/zhan.jpg","descr":"飞桨开发者专家"},{"name":"Evan CHEN","link":"https://lhchen.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/_8RG~~1E221F8I(K2FUV4KJ.bmp","descr":"保研清深的图表示学习、语音驱动生成大牛"},{"name":"BB酱","link":"https://www.bbbbchan.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/bb.jpg","descr":"南开大学分割领域强者"},{"name":"sund","link":"http://www.sund-xys.cn/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/sund.jpg","descr":"西交网络&无线&侧信道大爹"},{"name":"冯玉龙","link":"http://bestxinyu.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/feng.jpg","descr":"又一个大佬"},{"name":"西电浪潮俱乐部","link":"http://www.xdu-inspur.club/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/inspur.jpg","descr":"在西电的技术性交流社团"}]},{"class_name":"网站","class_desc":"值得推荐的网站","link_list":[{"name":"跟李沐学AI的入门课","link":"https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/20221004001647.png","descr":"视频网站"},{"name":"OpenMMLab","link":"https://openmmlab.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/httpsi.loli.net202005145VyHPQqR6LWF39a.png.png","descr":"比较综合性的AI框架"}]}]}},"excerpt":"","more":""},{"title":"LINK","date":"2020-10-30T20:08:26.000Z","type":"link","comments":0,"_content":"","source":"link/index.md","raw":"---\n\ntitle: LINK\ndate: 2020-10-30 20:08:26\ntype: \"link\"\ncomments: false\n---","updated":"2023-03-23T13:47:53.213Z","path":"link/index.html","layout":"page","_id":"clta6l3uz000a3svx8nff7n4w","content":"","site":{"data":{"link":[{"class_name":"友情链接","class_desc":"那些人,那些事","link_list":[{"name":"冉崇治","link":"http://resetran.top/","avatar":"https://gcore.jsdelivr.net/gh/ranchongzhi/ranchongzhi.github.io@master/medias/logo.png","descr":"王者打野贼溜的NeRF研究者"},{"name":"六个骨头","link":"http://www.bone6.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/zhan.jpg","descr":"飞桨开发者专家"},{"name":"Evan CHEN","link":"https://lhchen.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/_8RG~~1E221F8I(K2FUV4KJ.bmp","descr":"保研清深的图表示学习、语音驱动生成大牛"},{"name":"BB酱","link":"https://www.bbbbchan.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/bb.jpg","descr":"南开大学分割领域强者"},{"name":"sund","link":"http://www.sund-xys.cn/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/sund.jpg","descr":"西交网络&无线&侧信道大爹"},{"name":"冯玉龙","link":"http://bestxinyu.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/feng.jpg","descr":"又一个大佬"},{"name":"西电浪潮俱乐部","link":"http://www.xdu-inspur.club/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/inspur.jpg","descr":"在西电的技术性交流社团"}]},{"class_name":"网站","class_desc":"值得推荐的网站","link_list":[{"name":"跟李沐学AI的入门课","link":"https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/20221004001647.png","descr":"视频网站"},{"name":"OpenMMLab","link":"https://openmmlab.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/httpsi.loli.net202005145VyHPQqR6LWF39a.png.png","descr":"比较综合性的AI框架"}]}]}},"excerpt":"","more":""},{"title":"那些年,我们听过的音乐","date":"2018-01-05T00:00:00.000Z","comments":0,"_content":"","source":"music/index.md","raw":"---\ntitle: 那些年,我们听过的音乐\ndate: 2018-01-05 00:00:00\ncomments: false\n---","updated":"2023-03-23T13:47:53.214Z","path":"music/index.html","layout":"page","_id":"clta6l3v0000e3svxb5n4gq4a","content":"","site":{"data":{"link":[{"class_name":"友情链接","class_desc":"那些人,那些事","link_list":[{"name":"冉崇治","link":"http://resetran.top/","avatar":"https://gcore.jsdelivr.net/gh/ranchongzhi/ranchongzhi.github.io@master/medias/logo.png","descr":"王者打野贼溜的NeRF研究者"},{"name":"六个骨头","link":"http://www.bone6.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/zhan.jpg","descr":"飞桨开发者专家"},{"name":"Evan CHEN","link":"https://lhchen.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/_8RG~~1E221F8I(K2FUV4KJ.bmp","descr":"保研清深的图表示学习、语音驱动生成大牛"},{"name":"BB酱","link":"https://www.bbbbchan.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/bb.jpg","descr":"南开大学分割领域强者"},{"name":"sund","link":"http://www.sund-xys.cn/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/sund.jpg","descr":"西交网络&无线&侧信道大爹"},{"name":"冯玉龙","link":"http://bestxinyu.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/feng.jpg","descr":"又一个大佬"},{"name":"西电浪潮俱乐部","link":"http://www.xdu-inspur.club/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/inspur.jpg","descr":"在西电的技术性交流社团"}]},{"class_name":"网站","class_desc":"值得推荐的网站","link_list":[{"name":"跟李沐学AI的入门课","link":"https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/20221004001647.png","descr":"视频网站"},{"name":"OpenMMLab","link":"https://openmmlab.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/httpsi.loli.net202005145VyHPQqR6LWF39a.png.png","descr":"比较综合性的AI框架"}]}]}},"excerpt":"","more":""},{"title":"标签","date":"2020-10-30T20:05:36.000Z","type":"tags","comments":0,"_content":"","source":"tags/index.md","raw":"---\n\ntitle: 标签\ndate: 2020-10-30 20:05:36\ntype: \"tags\"\ncomments: false\n---","updated":"2023-03-23T13:47:53.214Z","path":"tags/index.html","layout":"page","_id":"clta6l3v1000f3svx5df548gx","content":"","site":{"data":{"link":[{"class_name":"友情链接","class_desc":"那些人,那些事","link_list":[{"name":"冉崇治","link":"http://resetran.top/","avatar":"https://gcore.jsdelivr.net/gh/ranchongzhi/ranchongzhi.github.io@master/medias/logo.png","descr":"王者打野贼溜的NeRF研究者"},{"name":"六个骨头","link":"http://www.bone6.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/zhan.jpg","descr":"飞桨开发者专家"},{"name":"Evan CHEN","link":"https://lhchen.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/_8RG~~1E221F8I(K2FUV4KJ.bmp","descr":"保研清深的图表示学习、语音驱动生成大牛"},{"name":"BB酱","link":"https://www.bbbbchan.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/bb.jpg","descr":"南开大学分割领域强者"},{"name":"sund","link":"http://www.sund-xys.cn/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/sund.jpg","descr":"西交网络&无线&侧信道大爹"},{"name":"冯玉龙","link":"http://bestxinyu.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/feng.jpg","descr":"又一个大佬"},{"name":"西电浪潮俱乐部","link":"http://www.xdu-inspur.club/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/inspur.jpg","descr":"在西电的技术性交流社团"}]},{"class_name":"网站","class_desc":"值得推荐的网站","link_list":[{"name":"跟李沐学AI的入门课","link":"https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/20221004001647.png","descr":"视频网站"},{"name":"OpenMMLab","link":"https://openmmlab.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/httpsi.loli.net202005145VyHPQqR6LWF39a.png.png","descr":"比较综合性的AI框架"}]}]}},"excerpt":"","more":""},{"title":"那些年,我们拍过的回忆","date":"2018-01-05T00:00:00.000Z","comments":0,"_content":"","source":"photos/index.md","raw":"---\ntitle: 那些年,我们拍过的回忆\ndate: 2018-01-05 00:00:00\ncomments: false\n---","updated":"2023-03-23T13:47:53.214Z","path":"photos/index.html","layout":"page","_id":"clta6l3v2000k3svx8iqq2xgy","content":"","site":{"data":{"link":[{"class_name":"友情链接","class_desc":"那些人,那些事","link_list":[{"name":"冉崇治","link":"http://resetran.top/","avatar":"https://gcore.jsdelivr.net/gh/ranchongzhi/ranchongzhi.github.io@master/medias/logo.png","descr":"王者打野贼溜的NeRF研究者"},{"name":"六个骨头","link":"http://www.bone6.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/zhan.jpg","descr":"飞桨开发者专家"},{"name":"Evan CHEN","link":"https://lhchen.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/_8RG~~1E221F8I(K2FUV4KJ.bmp","descr":"保研清深的图表示学习、语音驱动生成大牛"},{"name":"BB酱","link":"https://www.bbbbchan.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/bb.jpg","descr":"南开大学分割领域强者"},{"name":"sund","link":"http://www.sund-xys.cn/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/sund.jpg","descr":"西交网络&无线&侧信道大爹"},{"name":"冯玉龙","link":"http://bestxinyu.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/feng.jpg","descr":"又一个大佬"},{"name":"西电浪潮俱乐部","link":"http://www.xdu-inspur.club/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/inspur.jpg","descr":"在西电的技术性交流社团"}]},{"class_name":"网站","class_desc":"值得推荐的网站","link_list":[{"name":"跟李沐学AI的入门课","link":"https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/20221004001647.png","descr":"视频网站"},{"name":"OpenMMLab","link":"https://openmmlab.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/httpsi.loli.net202005145VyHPQqR6LWF39a.png.png","descr":"比较综合性的AI框架"}]}]}},"excerpt":"","more":""}],"Post":[{"title":"【论文阅读】 Deep High-Resolution Representation Learning for Visual Recognition","date":"2022-09-20T19:57:37.000Z","keywords":"深度学习、 CV、 姿态估计","description":"读论文的记录","top_img":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/mouse.jpg","comments":1,"cover":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/mouse.jpg","toc":null,"toc_number":null,"copyright":null,"copyright_author":"Jack Zhu","copyright_author_href":null,"copyright_url":"http://jackzhu.top/","copyright_info":null,"mathjax":null,"katex":null,"aplayer":null,"highlight_shrink":null,"aside":null,"_content":"# 【论文阅读】 Deep High-Resolution Representation Learning for Visual Recognition\n\n## 简介\n在计算机视觉中高分辨的表示是非常重要的,HRNet是用于识别的高分辨网络,广泛的用于姿态检测以及语义分割中,也可用于目标检测。\n## 网络结构\n相比一般的网络,HRNet具有特殊的结构,一般的卷积神经网络往往是随着网络的深入,特征图的分辨率逐渐由高到低,这样的网络结构设计适合一般的视觉问题,视觉空间信息都是冗余的,对信息的精准度要求不高,但是这种结构在面对关键点检测以及语义分割问题的时候就不能很好的完成任务,精准度不够。因此就有了HRNet的结构设计如下图所示:\n\nHRNet网络在模型的整个过程中都能保持高分辨率,采用并行的网络,不同的流的分辨率不同,在网络的第n个阶段有n流个网络,从前往后每次下采样一个流,同时在阶段的连接出对信息进行交汇,从高分辨率使用卷积到低分辨率,从低分辨率的流上采样到高分辨率的流,最终得到模型。\n模型的特色有两点:\n\n- 使用并行连接从高到低分辨率的卷积流\n- 跨分辨率反复交换信息\n\n使用并行连接使得在整个过程中都保持了高分辨率的表示,使用了跨分辨率的反复融合信息使得模型对于位置具有很强的敏感性,可以较好的完成相关的工作。\n## 模型的变体\n在HRNet模型中共提出了三种模型的结构,HRNetV1 HRNetV2以及HRNetV2p这三种结构\n\n其中V1只使用了融合最后的高分辨率流,这种结构相比V2运算量更小,而在关键点检测任务中和V2版本性能基本没有差别。而V2版本对最后的信息都进行了融合,在语义分割任务中表现较好。V2p则是在V2的基础上形成特征金字塔,更适合目标检测任务。\n\n## 消融实验\n消融实验证明分辨率确实会影响关键的检测的质量,这一点与一般的感觉相符。对多分辨率融合的实验也证明了融合会带来好的性能提升。\n\n## 结论\n对该模型的研究中可以得到一个结论,针对特定的问题来设计网络架构可能是有用的。此外,一个可能的误解在于分辨率越高,HRNet的内存消耗越大,但是实际是在姿态估计、语义分割以及目标检测中,内存成本并未很高。","source":"_posts/HRNet.md","raw":"---\ntitle: 【论文阅读】 Deep High-Resolution Representation Learning for Visual Recognition\ndate: 2022-09-20 19:57:37\ntags: 深度学习\ncategories: 姿态估计\nkeywords: 深度学习、 CV、 姿态估计\ndescription: 读论文的记录\ntop_img: https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/mouse.jpg\ncomments: true\ncover: https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/mouse.jpg\ntoc:\ntoc_number:\ncopyright:\ncopyright_author: Jack Zhu\ncopyright_author_href: \ncopyright_url: http://jackzhu.top/\ncopyright_info: \nmathjax: \nkatex: \naplayer: \nhighlight_shrink: \naside: \n---\n# 【论文阅读】 Deep High-Resolution Representation Learning for Visual Recognition\n\n## 简介\n在计算机视觉中高分辨的表示是非常重要的,HRNet是用于识别的高分辨网络,广泛的用于姿态检测以及语义分割中,也可用于目标检测。\n## 网络结构\n相比一般的网络,HRNet具有特殊的结构,一般的卷积神经网络往往是随着网络的深入,特征图的分辨率逐渐由高到低,这样的网络结构设计适合一般的视觉问题,视觉空间信息都是冗余的,对信息的精准度要求不高,但是这种结构在面对关键点检测以及语义分割问题的时候就不能很好的完成任务,精准度不够。因此就有了HRNet的结构设计如下图所示:\n\nHRNet网络在模型的整个过程中都能保持高分辨率,采用并行的网络,不同的流的分辨率不同,在网络的第n个阶段有n流个网络,从前往后每次下采样一个流,同时在阶段的连接出对信息进行交汇,从高分辨率使用卷积到低分辨率,从低分辨率的流上采样到高分辨率的流,最终得到模型。\n模型的特色有两点:\n\n- 使用并行连接从高到低分辨率的卷积流\n- 跨分辨率反复交换信息\n\n使用并行连接使得在整个过程中都保持了高分辨率的表示,使用了跨分辨率的反复融合信息使得模型对于位置具有很强的敏感性,可以较好的完成相关的工作。\n## 模型的变体\n在HRNet模型中共提出了三种模型的结构,HRNetV1 HRNetV2以及HRNetV2p这三种结构\n\n其中V1只使用了融合最后的高分辨率流,这种结构相比V2运算量更小,而在关键点检测任务中和V2版本性能基本没有差别。而V2版本对最后的信息都进行了融合,在语义分割任务中表现较好。V2p则是在V2的基础上形成特征金字塔,更适合目标检测任务。\n\n## 消融实验\n消融实验证明分辨率确实会影响关键的检测的质量,这一点与一般的感觉相符。对多分辨率融合的实验也证明了融合会带来好的性能提升。\n\n## 结论\n对该模型的研究中可以得到一个结论,针对特定的问题来设计网络架构可能是有用的。此外,一个可能的误解在于分辨率越高,HRNet的内存消耗越大,但是实际是在姿态估计、语义分割以及目标检测中,内存成本并未很高。","slug":"HRNet","published":1,"updated":"2023-03-23T13:47:53.193Z","layout":"post","photos":[],"link":"","_id":"clta6l3us00013svxg6jr9v3q","content":"<h1 id=\"【论文阅读】-Deep-High-Resolution-Representation-Learning-for-Visual-Recognition\"><a href=\"#【论文阅读】-Deep-High-Resolution-Representation-Learning-for-Visual-Recognition\" class=\"headerlink\" title=\"【论文阅读】 Deep High-Resolution Representation Learning for Visual Recognition\"></a>【论文阅读】 Deep High-Resolution Representation Learning for Visual Recognition</h1><h2 id=\"简介\"><a href=\"#简介\" class=\"headerlink\" title=\"简介\"></a>简介</h2><p>在计算机视觉中高分辨的表示是非常重要的,HRNet是用于识别的高分辨网络,广泛的用于姿态检测以及语义分割中,也可用于目标检测。</p>\n<h2 id=\"网络结构\"><a href=\"#网络结构\" class=\"headerlink\" title=\"网络结构\"></a>网络结构</h2><p>相比一般的网络,HRNet具有特殊的结构,一般的卷积神经网络往往是随着网络的深入,特征图的分辨率逐渐由高到低,这样的网络结构设计适合一般的视觉问题,视觉空间信息都是冗余的,对信息的精准度要求不高,但是这种结构在面对关键点检测以及语义分割问题的时候就不能很好的完成任务,精准度不够。因此就有了HRNet的结构设计如下图所示:<br><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/HRnet1.png\" alt=\"HRnet1\"><br>HRNet网络在模型的整个过程中都能保持高分辨率,采用并行的网络,不同的流的分辨率不同,在网络的第n个阶段有n流个网络,从前往后每次下采样一个流,同时在阶段的连接出对信息进行交汇,从高分辨率使用卷积到低分辨率,从低分辨率的流上采样到高分辨率的流,最终得到模型。<br>模型的特色有两点:</p>\n<ul>\n<li>使用并行连接从高到低分辨率的卷积流</li>\n<li>跨分辨率反复交换信息</li>\n</ul>\n<p>使用并行连接使得在整个过程中都保持了高分辨率的表示,使用了跨分辨率的反复融合信息使得模型对于位置具有很强的敏感性,可以较好的完成相关的工作。</p>\n<h2 id=\"模型的变体\"><a href=\"#模型的变体\" class=\"headerlink\" title=\"模型的变体\"></a>模型的变体</h2><p>在HRNet模型中共提出了三种模型的结构,HRNetV1 HRNetV2以及HRNetV2p这三种结构<br><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/HRnet2.png\" alt=\"HRnet2\"><br>其中V1只使用了融合最后的高分辨率流,这种结构相比V2运算量更小,而在关键点检测任务中和V2版本性能基本没有差别。而V2版本对最后的信息都进行了融合,在语义分割任务中表现较好。V2p则是在V2的基础上形成特征金字塔,更适合目标检测任务。</p>\n<h2 id=\"消融实验\"><a href=\"#消融实验\" class=\"headerlink\" title=\"消融实验\"></a>消融实验</h2><p>消融实验证明分辨率确实会影响关键的检测的质量,这一点与一般的感觉相符。对多分辨率融合的实验也证明了融合会带来好的性能提升。</p>\n<h2 id=\"结论\"><a href=\"#结论\" class=\"headerlink\" title=\"结论\"></a>结论</h2><p>对该模型的研究中可以得到一个结论,针对特定的问题来设计网络架构可能是有用的。此外,一个可能的误解在于分辨率越高,HRNet的内存消耗越大,但是实际是在姿态估计、语义分割以及目标检测中,内存成本并未很高。</p>\n","site":{"data":{"link":[{"class_name":"友情链接","class_desc":"那些人,那些事","link_list":[{"name":"冉崇治","link":"http://resetran.top/","avatar":"https://gcore.jsdelivr.net/gh/ranchongzhi/ranchongzhi.github.io@master/medias/logo.png","descr":"王者打野贼溜的NeRF研究者"},{"name":"六个骨头","link":"http://www.bone6.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/zhan.jpg","descr":"飞桨开发者专家"},{"name":"Evan CHEN","link":"https://lhchen.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/_8RG~~1E221F8I(K2FUV4KJ.bmp","descr":"保研清深的图表示学习、语音驱动生成大牛"},{"name":"BB酱","link":"https://www.bbbbchan.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/bb.jpg","descr":"南开大学分割领域强者"},{"name":"sund","link":"http://www.sund-xys.cn/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/sund.jpg","descr":"西交网络&无线&侧信道大爹"},{"name":"冯玉龙","link":"http://bestxinyu.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/feng.jpg","descr":"又一个大佬"},{"name":"西电浪潮俱乐部","link":"http://www.xdu-inspur.club/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/inspur.jpg","descr":"在西电的技术性交流社团"}]},{"class_name":"网站","class_desc":"值得推荐的网站","link_list":[{"name":"跟李沐学AI的入门课","link":"https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/20221004001647.png","descr":"视频网站"},{"name":"OpenMMLab","link":"https://openmmlab.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/httpsi.loli.net202005145VyHPQqR6LWF39a.png.png","descr":"比较综合性的AI框架"}]}]}},"excerpt":"","more":"<h1 id=\"【论文阅读】-Deep-High-Resolution-Representation-Learning-for-Visual-Recognition\"><a href=\"#【论文阅读】-Deep-High-Resolution-Representation-Learning-for-Visual-Recognition\" class=\"headerlink\" title=\"【论文阅读】 Deep High-Resolution Representation Learning for Visual Recognition\"></a>【论文阅读】 Deep High-Resolution Representation Learning for Visual Recognition</h1><h2 id=\"简介\"><a href=\"#简介\" class=\"headerlink\" title=\"简介\"></a>简介</h2><p>在计算机视觉中高分辨的表示是非常重要的,HRNet是用于识别的高分辨网络,广泛的用于姿态检测以及语义分割中,也可用于目标检测。</p>\n<h2 id=\"网络结构\"><a href=\"#网络结构\" class=\"headerlink\" title=\"网络结构\"></a>网络结构</h2><p>相比一般的网络,HRNet具有特殊的结构,一般的卷积神经网络往往是随着网络的深入,特征图的分辨率逐渐由高到低,这样的网络结构设计适合一般的视觉问题,视觉空间信息都是冗余的,对信息的精准度要求不高,但是这种结构在面对关键点检测以及语义分割问题的时候就不能很好的完成任务,精准度不够。因此就有了HRNet的结构设计如下图所示:<br><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/HRnet1.png\" alt=\"HRnet1\"><br>HRNet网络在模型的整个过程中都能保持高分辨率,采用并行的网络,不同的流的分辨率不同,在网络的第n个阶段有n流个网络,从前往后每次下采样一个流,同时在阶段的连接出对信息进行交汇,从高分辨率使用卷积到低分辨率,从低分辨率的流上采样到高分辨率的流,最终得到模型。<br>模型的特色有两点:</p>\n<ul>\n<li>使用并行连接从高到低分辨率的卷积流</li>\n<li>跨分辨率反复交换信息</li>\n</ul>\n<p>使用并行连接使得在整个过程中都保持了高分辨率的表示,使用了跨分辨率的反复融合信息使得模型对于位置具有很强的敏感性,可以较好的完成相关的工作。</p>\n<h2 id=\"模型的变体\"><a href=\"#模型的变体\" class=\"headerlink\" title=\"模型的变体\"></a>模型的变体</h2><p>在HRNet模型中共提出了三种模型的结构,HRNetV1 HRNetV2以及HRNetV2p这三种结构<br><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/HRnet2.png\" alt=\"HRnet2\"><br>其中V1只使用了融合最后的高分辨率流,这种结构相比V2运算量更小,而在关键点检测任务中和V2版本性能基本没有差别。而V2版本对最后的信息都进行了融合,在语义分割任务中表现较好。V2p则是在V2的基础上形成特征金字塔,更适合目标检测任务。</p>\n<h2 id=\"消融实验\"><a href=\"#消融实验\" class=\"headerlink\" title=\"消融实验\"></a>消融实验</h2><p>消融实验证明分辨率确实会影响关键的检测的质量,这一点与一般的感觉相符。对多分辨率融合的实验也证明了融合会带来好的性能提升。</p>\n<h2 id=\"结论\"><a href=\"#结论\" class=\"headerlink\" title=\"结论\"></a>结论</h2><p>对该模型的研究中可以得到一个结论,针对特定的问题来设计网络架构可能是有用的。此外,一个可能的误解在于分辨率越高,HRNet的内存消耗越大,但是实际是在姿态估计、语义分割以及目标检测中,内存成本并未很高。</p>\n"},{"title":"Ubuntu 20.04下Pytorch深度学习环境搭建以及常用工具配置","date":"2022-04-10T00:08:37.000Z","keywords":"环境 pytorch","description":"一点小记录","top_img":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102119630.jpg","comments":1,"cover":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102119630.jpg","toc":null,"toc_number":null,"copyright":null,"copyright_author":"Jack Zhu","copyright_author_href":null,"copyright_url":"http://jackzhu.top/","copyright_info":null,"mathjax":null,"katex":null,"aplayer":null,"highlight_shrink":null,"aside":null,"_content":"# Ubuntu 20.04下Pytorch深度学习环境搭建以及常用工具配置\n\n作者:CoderJackZhu\n\n从事计算机相关行业的在今后学习工作过程中总会接触到Linux系统,而且在很多情况下,Windows下可能会出现一些奇奇怪怪的bug,这些问题部分是系统的问题导致的,比如常见的路径中不能带中文。深度学习环境有时候为了更好的管理机器,取得更好的效率也常常采用Linux系统,这里选择Ubuntu是对于个人的萌新而言,应该选择尽量大众些的系统,出问题也容易找到解决办法,比如由于各种误操作,linux系统我至少已经重装过不下二十次了,为了更好的学习相关知识,这样一个系统的搭建也是需要的,这里写出这个博客为了方便使用,也让我之后重装系统的时候不用再找好几个博客了。\n\n## “双系统”中Ubuntu安装\n\n这里的所说的双系统并不是真正的单个硬盘上多个挂载点的双系统,而是把第二个系统装在移动硬盘里面,这样正常开机默认还是Windows系统,需要选择系统就在进入系统时长按`F11`(不同品牌电脑不同),选择相应的系统就可以进入了,这样的安装相比一个硬盘上多个挂载点简易不少,配置难度低,而且不易出问题,不然一不小心两个系统都不能用了,这样Linux出了问题只需要直接覆盖重装就可以了,下面是具体步骤:\n\n### 准备需要的工具\n\n这里软件方面需要准备的是,从官方网站上下载Ubuntu的镜像,以及刻录软件。刻录软件使用UltraIso或者balentEtcher都是可以的,balentEtcher相对操作更简易些。\n\n硬件需要准备的是一个U盘用于制作启动盘,尽量大于等于16G,一个移动硬盘用于安装系统,尽量大于128G,毕竟实际使用过程中数据集也比较大,还是需要给后续留足空间。\n\n### 制作启动盘\n\n安装好Format后选择文件为之前下的系统镜像,选择硬件为U盘,然后点击Flash就可以了,等几分钟安装校验完就可以了。\n\n### 安装\n\n然后重启并选择使用刚才的U盘启动,就可以进入安装Ubuntu的界面了,正常使用的话选择中文汉语,正常安装,勾选安装第三方软件。这个时候可以插上移动硬盘了,然后输入自己的用户名密码什么的,之后就进入选择安装位置了,这里点击清理磁盘安装就可以了,不然挂载点就很不太好理解,然后下一步点击你插入的那个硬盘,**这里注意别选错**,根据你的硬盘大小就能判断出了,选错其他盘的话可能你的数据就凉了,然后下一步。然后选择地图上的位置为shanghai就可以了,之后就进入安装了,等一会安装完然后点击重新启动,然后根据提示拔掉U盘,然后开机的时候选择那个硬盘启动,这个时候硬盘的名字就已经是Ubuntu了,然后两次回车就可以进入系统了,到这里,系统的安装就算完成了。\n\n## 深度学习Pytorch环境配置\n\n正常使用深度学习环境跑代码,GPU是必不可少,这里只演示GPU版本的pytorch的安装,所需要的工具为Anaconda、CUDA、cuDNN、Pytorch。Anaconda可以用来管理不同版本的环境,CUDA和cuDNN是使用GPU计算所需要的工具这里需要注意相互之间的匹配关系,首先去[pytorch官网](https://pytorch.org/)可以看到\n\n\n\n因此这里选择CUDA11.3,然后根据CUDA的版本,选择cuDNN的版本,具体在下载cuDNN的时候可以看到。\n\n### 安装驱动\n\n安装NVIDIA驱动有多种方式,比如可以去官网下载最新版,这里介绍最简单的一种,首先打开软件与更新,然后点附加驱动这里,系统默认用的是开源的的驱动,这里选最上面的几个版本高的就可以,这里安装的cuda11.3驱动至少要470以上,然后点击应用更改等一会就可以了。\n\n\n\n安装完成之后在命令行输入`nvidia-smi`就可以看到下图GPU情况,这就说明驱动基本没问题了。\n\n\n\n### 下载安装cuda\n\n这里找[官方网站](https://developer.nvidia.com/cuda-downloads)\n\n\n\n可以看到这里默认是11.6版本的,这里点击下方中的`Archive of Previous CUDA Releases`并选择对于的11.3版本,都是11.3的情况下选最后一位高的,之后进入以下界面,选择对应版本,然后先后输入下方的两行,第一行输入命令行,就开始下载了,下载完之后在对应的目录打开终端命令行,然后输入第二行,就开始安装了。\n\n\n\n安装过程中看到勾选多个项目的时候,把第一项的X勾选框点下回车取消掉,由于之前已经安装了驱动,所有这里不需要安装里面附带的驱动,然后切换Install并点击回车,等待就可以安装好了。\n\n然后添加路径,修改`.bashrc`文件:\n\n```\nsudo gedit ~/.bashrc\n```\n\n#在末尾添加:\n```\nexport PATH=/usr/local/cuda/bin${PATH:+:${PATH}} \nexport LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} \n```\n更新刚才输入的内容,在命令行输入: `source ~/.bashrc`\n\n\n安装成功输入`nvcc -V`\n\n### cuDNN的安装\n\n到[官网](https://developer.nvidia.com/cudnn)下载文件:点击如图`Download cuDNN`按钮。下载需要NVIDIA的账号,没有的需要先注册一个。\n\n\n\n然后进入[下载界面](https://developer.nvidia.com/rdp/cudnn-archive#a-collapse742-10)并选择Previous Archive\n\n\n\n选择CUDA11.x对于的cuDNNv8.2 选择Runtime Library版的deb文件进行下载:\n\n\n\n安装cuDNN过程与CUDA类似:\n在下载的文件的文件夹里面打开终端,执行命令`sudo dpkg -i <name>`,其中`<name>`为刚才下载的deb文件名\n执行命令`sudo apt install <name>`,其中`<name>`要和自己下载的cudnn版本匹配,比如这里是libcudnn8\n\n## 安装Anaconda\n\nAnaconda用于控制版本管理,直接在系统的python里装不太方便,库的控制也不那么直观,使用Anaconda之后会方便很多。\n\n这里直接从[官网](https://www.anaconda.com/products/individual)下载就可以,速度也不错,下载完之后在下载的文件夹打开终端,这里重点,命令行不要输入`sudo`,直接`sh <name>` `name`为刚才下的文件名然后可以了,一路回车过完协议书,然后yes同意,然后要么回车要么yes就可以了。千万别在命令行前面加`sudo`,这样anaconda3的文件夹就安装在`root`下了,这样感觉有时候不方便;直接`sh`就可以安装在你的主目录下,装好退出命令行就可以用了。\n\n安装过程先一路回车,然后按要求都yes就好。\n\n安装后退出命令行,然后重新进入命令行,然后输入`conda`,若出现如下则证明安装成功,若出现command not found则重启系统,若还不行则需要添加环境变量。\n\n\n\n## 添加环境变量\n\n输入\n\n```\nsource ~/.bashrc\n```\n\n再执行conda,若好则安装结束,否则手动添加环境变量\n\n输入命令\n\n```\nsudo vim ~/.bashrc\n```\n\n若vim未安装,先安装,可以使用`sudo apt install vim`安装(或者使用`sudo gedit ~/.bashrc`也可打开文件),然后执行上述命令,然后在文件的最后添加,这里的内容不要直接复制,根据自己的用户名来定\n\n```\nexport\nPATH=/home/<自己的用户名>/anaconda3/bin:$PATH\n```\n\n输入完成后点击`ESC`, 然后输入`:wq`保存退出.\n\n然后更新环境变量:\n\n```\nsource ~/.bashrc\n```\n\n输入conda,检查是否配置成功。\n\n## 创建环境并安装PyTorch\n\n安装后一般应用栏里是没有这个软件的,需要在命令行中输入`anaconda-navigator`等待进入就可以了,然后点左方的environment然后点下方的加号创建环境,想个环境的名字,选择需要的python版本,这里也可以使用命令来创建\n\n```\nconda create -n <环境名> python=3.8\n```\n\n等待创建完成后在命令行中输入`conda info -e`即可查看现有哪些环境\n\n然后进入相应的环境输入下面命令,其中这里使用的环境名为`env1`\n\n```\nsource activate env1\n```\n\n即可激活,若为windows下则为`conda activate env1`。\n\n这样就进入环境了,随后输入pytorch官网上的命令:\n\n```\nconda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch\n```\n\n如果速度慢,则需要换源,一般默认使用清华源为以下命令:\n\n```\nconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/\n\nconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge\n\nconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/\n\nconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/\n\nconda config --set show_channel_urls yes\n```\n\n**或者**打开主目录下的隐藏文件`.condarc`,将其内容整体更换为以下内容:\n\n```\nssl_verify: true\nshow_channel_urls: true\n\nchannels:\n - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64/\n - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/\n\n```\n\n然后运行 `conda clean -i` 清除索引缓存。\n\n这时候安装命令就要把最后的`-c pytorch`去掉,变成\n```\nconda install pytorch torchvision torchaudio cudatoolkit=11.3\n```\n\n就可以很快的下载了,也可以使用[pytorch离线安装下载](https://download.pytorch.org/whl/torch_stable.html)直接下载whl文件,然后在命令行中进入下载的文件夹,然后输入\n\n```python\npip install torch-1.9.0+cu111-cp38-cp38-win_amd64.whl\n```\n这样就可以安装了,若为linux则将`win_amd64`改为`linux_x86_64`即可。\n\n若为单次换下载换源则命令为:\n\n```\npip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ \n```\n\n在后面加上需要安装的库名字即可。\n\n## 验证安装成功\n\n若全部安装完成,则新建一个python脚本hello.py,内容如下\n\n```\nimport torch\nimport torchvision\nprint(torch)\nprint(torchvision)\nprint(torch.cuda.is_available())\nx=torch.randn(5, 3)\nprint(x)\nprint(torch.cuda.device)\nprint(torch.__version__)\nprint(torchvision.__version__)\nprint(torch.version)\nprint(torch.version.cuda) # Corresponding CUDA version\nprint(torch.backends.cudnn.version()) # Corresponding cuDNN version\nprint(torch.cuda.get_device_name(0)) # GPU type\n```\n\n即可查看详细情况,若cuda可用这里显示true就说明安装成功。\n\n## 常用软件\n\n深度学习环境其他非常常用的软件一般还有VScode和Pychram,一般这两个都安装比较好。\n\nBT下载以及磁力链下载很多时候是需要的,因此需要下载工具\n\n下载工具可以用Free Download Manger,还是非常好用的,还有qbittorrent和Motrix作为备用下载软件,这两个软件下载后不用安装,需要用的时候打开,也非常不错。\n\n其他比如截屏剪切板等功能用utools也挺好,不过高级功能后来收费了。\n\n## windows下安装的差异\n\n### 更新驱动\n\n正常使用的话,下载GeForce Experience然后把驱动更新到最新版即可,或者手动下载驱动,没有特殊需要的话默认最新版就好。\n\n### 安装cuda和cudnn\n\n主体部分和linux下大同小异,按要求下载安装对应版本即可,安装cuda后打开命令行输入\n\n```\nnvcc -V\n```\n\n返回版本号说明安装cuda成功。\n\n不过cudnn这里下载完后是复制到cuda对应的bin目录里面,一般是C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA。\n\n安装后有时候不能使用则需要添加环境变量,在系统环境变量里的Path项下添加几个路径\n\nC:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\n\n C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\lib\\x64\n\n安装完成后进入路径然后运行测试,成功则为以下界面。\n\n\n\n然后运行测试的代码即可。\n","source":"_posts/Ubuntu 20.04下深度学习环境搭建以及常用工具配置.md","raw":"---\ntitle: Ubuntu 20.04下Pytorch深度学习环境搭建以及常用工具配置\ndate: 2022-04-10 00:08:37\ntags: 深度学习\ncategories: 深度学习\nkeywords: 环境 pytorch\ndescription: 一点小记录\ntop_img: https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102119630.jpg\ncomments: true\ncover: https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102119630.jpg\ntoc:\ntoc_number:\ncopyright:\ncopyright_author: Jack Zhu\ncopyright_author_href: \ncopyright_url: http://jackzhu.top/\ncopyright_info:\nmathjax:\nkatex:\naplayer:\nhighlight_shrink:\naside:\n---\n# Ubuntu 20.04下Pytorch深度学习环境搭建以及常用工具配置\n\n作者:CoderJackZhu\n\n从事计算机相关行业的在今后学习工作过程中总会接触到Linux系统,而且在很多情况下,Windows下可能会出现一些奇奇怪怪的bug,这些问题部分是系统的问题导致的,比如常见的路径中不能带中文。深度学习环境有时候为了更好的管理机器,取得更好的效率也常常采用Linux系统,这里选择Ubuntu是对于个人的萌新而言,应该选择尽量大众些的系统,出问题也容易找到解决办法,比如由于各种误操作,linux系统我至少已经重装过不下二十次了,为了更好的学习相关知识,这样一个系统的搭建也是需要的,这里写出这个博客为了方便使用,也让我之后重装系统的时候不用再找好几个博客了。\n\n## “双系统”中Ubuntu安装\n\n这里的所说的双系统并不是真正的单个硬盘上多个挂载点的双系统,而是把第二个系统装在移动硬盘里面,这样正常开机默认还是Windows系统,需要选择系统就在进入系统时长按`F11`(不同品牌电脑不同),选择相应的系统就可以进入了,这样的安装相比一个硬盘上多个挂载点简易不少,配置难度低,而且不易出问题,不然一不小心两个系统都不能用了,这样Linux出了问题只需要直接覆盖重装就可以了,下面是具体步骤:\n\n### 准备需要的工具\n\n这里软件方面需要准备的是,从官方网站上下载Ubuntu的镜像,以及刻录软件。刻录软件使用UltraIso或者balentEtcher都是可以的,balentEtcher相对操作更简易些。\n\n硬件需要准备的是一个U盘用于制作启动盘,尽量大于等于16G,一个移动硬盘用于安装系统,尽量大于128G,毕竟实际使用过程中数据集也比较大,还是需要给后续留足空间。\n\n### 制作启动盘\n\n安装好Format后选择文件为之前下的系统镜像,选择硬件为U盘,然后点击Flash就可以了,等几分钟安装校验完就可以了。\n\n### 安装\n\n然后重启并选择使用刚才的U盘启动,就可以进入安装Ubuntu的界面了,正常使用的话选择中文汉语,正常安装,勾选安装第三方软件。这个时候可以插上移动硬盘了,然后输入自己的用户名密码什么的,之后就进入选择安装位置了,这里点击清理磁盘安装就可以了,不然挂载点就很不太好理解,然后下一步点击你插入的那个硬盘,**这里注意别选错**,根据你的硬盘大小就能判断出了,选错其他盘的话可能你的数据就凉了,然后下一步。然后选择地图上的位置为shanghai就可以了,之后就进入安装了,等一会安装完然后点击重新启动,然后根据提示拔掉U盘,然后开机的时候选择那个硬盘启动,这个时候硬盘的名字就已经是Ubuntu了,然后两次回车就可以进入系统了,到这里,系统的安装就算完成了。\n\n## 深度学习Pytorch环境配置\n\n正常使用深度学习环境跑代码,GPU是必不可少,这里只演示GPU版本的pytorch的安装,所需要的工具为Anaconda、CUDA、cuDNN、Pytorch。Anaconda可以用来管理不同版本的环境,CUDA和cuDNN是使用GPU计算所需要的工具这里需要注意相互之间的匹配关系,首先去[pytorch官网](https://pytorch.org/)可以看到\n\n\n\n因此这里选择CUDA11.3,然后根据CUDA的版本,选择cuDNN的版本,具体在下载cuDNN的时候可以看到。\n\n### 安装驱动\n\n安装NVIDIA驱动有多种方式,比如可以去官网下载最新版,这里介绍最简单的一种,首先打开软件与更新,然后点附加驱动这里,系统默认用的是开源的的驱动,这里选最上面的几个版本高的就可以,这里安装的cuda11.3驱动至少要470以上,然后点击应用更改等一会就可以了。\n\n\n\n安装完成之后在命令行输入`nvidia-smi`就可以看到下图GPU情况,这就说明驱动基本没问题了。\n\n\n\n### 下载安装cuda\n\n这里找[官方网站](https://developer.nvidia.com/cuda-downloads)\n\n\n\n可以看到这里默认是11.6版本的,这里点击下方中的`Archive of Previous CUDA Releases`并选择对于的11.3版本,都是11.3的情况下选最后一位高的,之后进入以下界面,选择对应版本,然后先后输入下方的两行,第一行输入命令行,就开始下载了,下载完之后在对应的目录打开终端命令行,然后输入第二行,就开始安装了。\n\n\n\n安装过程中看到勾选多个项目的时候,把第一项的X勾选框点下回车取消掉,由于之前已经安装了驱动,所有这里不需要安装里面附带的驱动,然后切换Install并点击回车,等待就可以安装好了。\n\n然后添加路径,修改`.bashrc`文件:\n\n```\nsudo gedit ~/.bashrc\n```\n\n#在末尾添加:\n```\nexport PATH=/usr/local/cuda/bin${PATH:+:${PATH}} \nexport LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} \n```\n更新刚才输入的内容,在命令行输入: `source ~/.bashrc`\n\n\n安装成功输入`nvcc -V`\n\n### cuDNN的安装\n\n到[官网](https://developer.nvidia.com/cudnn)下载文件:点击如图`Download cuDNN`按钮。下载需要NVIDIA的账号,没有的需要先注册一个。\n\n\n\n然后进入[下载界面](https://developer.nvidia.com/rdp/cudnn-archive#a-collapse742-10)并选择Previous Archive\n\n\n\n选择CUDA11.x对于的cuDNNv8.2 选择Runtime Library版的deb文件进行下载:\n\n\n\n安装cuDNN过程与CUDA类似:\n在下载的文件的文件夹里面打开终端,执行命令`sudo dpkg -i <name>`,其中`<name>`为刚才下载的deb文件名\n执行命令`sudo apt install <name>`,其中`<name>`要和自己下载的cudnn版本匹配,比如这里是libcudnn8\n\n## 安装Anaconda\n\nAnaconda用于控制版本管理,直接在系统的python里装不太方便,库的控制也不那么直观,使用Anaconda之后会方便很多。\n\n这里直接从[官网](https://www.anaconda.com/products/individual)下载就可以,速度也不错,下载完之后在下载的文件夹打开终端,这里重点,命令行不要输入`sudo`,直接`sh <name>` `name`为刚才下的文件名然后可以了,一路回车过完协议书,然后yes同意,然后要么回车要么yes就可以了。千万别在命令行前面加`sudo`,这样anaconda3的文件夹就安装在`root`下了,这样感觉有时候不方便;直接`sh`就可以安装在你的主目录下,装好退出命令行就可以用了。\n\n安装过程先一路回车,然后按要求都yes就好。\n\n安装后退出命令行,然后重新进入命令行,然后输入`conda`,若出现如下则证明安装成功,若出现command not found则重启系统,若还不行则需要添加环境变量。\n\n\n\n## 添加环境变量\n\n输入\n\n```\nsource ~/.bashrc\n```\n\n再执行conda,若好则安装结束,否则手动添加环境变量\n\n输入命令\n\n```\nsudo vim ~/.bashrc\n```\n\n若vim未安装,先安装,可以使用`sudo apt install vim`安装(或者使用`sudo gedit ~/.bashrc`也可打开文件),然后执行上述命令,然后在文件的最后添加,这里的内容不要直接复制,根据自己的用户名来定\n\n```\nexport\nPATH=/home/<自己的用户名>/anaconda3/bin:$PATH\n```\n\n输入完成后点击`ESC`, 然后输入`:wq`保存退出.\n\n然后更新环境变量:\n\n```\nsource ~/.bashrc\n```\n\n输入conda,检查是否配置成功。\n\n## 创建环境并安装PyTorch\n\n安装后一般应用栏里是没有这个软件的,需要在命令行中输入`anaconda-navigator`等待进入就可以了,然后点左方的environment然后点下方的加号创建环境,想个环境的名字,选择需要的python版本,这里也可以使用命令来创建\n\n```\nconda create -n <环境名> python=3.8\n```\n\n等待创建完成后在命令行中输入`conda info -e`即可查看现有哪些环境\n\n然后进入相应的环境输入下面命令,其中这里使用的环境名为`env1`\n\n```\nsource activate env1\n```\n\n即可激活,若为windows下则为`conda activate env1`。\n\n这样就进入环境了,随后输入pytorch官网上的命令:\n\n```\nconda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch\n```\n\n如果速度慢,则需要换源,一般默认使用清华源为以下命令:\n\n```\nconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/\n\nconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge\n\nconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/\n\nconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/\n\nconda config --set show_channel_urls yes\n```\n\n**或者**打开主目录下的隐藏文件`.condarc`,将其内容整体更换为以下内容:\n\n```\nssl_verify: true\nshow_channel_urls: true\n\nchannels:\n - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64/\n - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/\n\n```\n\n然后运行 `conda clean -i` 清除索引缓存。\n\n这时候安装命令就要把最后的`-c pytorch`去掉,变成\n```\nconda install pytorch torchvision torchaudio cudatoolkit=11.3\n```\n\n就可以很快的下载了,也可以使用[pytorch离线安装下载](https://download.pytorch.org/whl/torch_stable.html)直接下载whl文件,然后在命令行中进入下载的文件夹,然后输入\n\n```python\npip install torch-1.9.0+cu111-cp38-cp38-win_amd64.whl\n```\n这样就可以安装了,若为linux则将`win_amd64`改为`linux_x86_64`即可。\n\n若为单次换下载换源则命令为:\n\n```\npip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ \n```\n\n在后面加上需要安装的库名字即可。\n\n## 验证安装成功\n\n若全部安装完成,则新建一个python脚本hello.py,内容如下\n\n```\nimport torch\nimport torchvision\nprint(torch)\nprint(torchvision)\nprint(torch.cuda.is_available())\nx=torch.randn(5, 3)\nprint(x)\nprint(torch.cuda.device)\nprint(torch.__version__)\nprint(torchvision.__version__)\nprint(torch.version)\nprint(torch.version.cuda) # Corresponding CUDA version\nprint(torch.backends.cudnn.version()) # Corresponding cuDNN version\nprint(torch.cuda.get_device_name(0)) # GPU type\n```\n\n即可查看详细情况,若cuda可用这里显示true就说明安装成功。\n\n## 常用软件\n\n深度学习环境其他非常常用的软件一般还有VScode和Pychram,一般这两个都安装比较好。\n\nBT下载以及磁力链下载很多时候是需要的,因此需要下载工具\n\n下载工具可以用Free Download Manger,还是非常好用的,还有qbittorrent和Motrix作为备用下载软件,这两个软件下载后不用安装,需要用的时候打开,也非常不错。\n\n其他比如截屏剪切板等功能用utools也挺好,不过高级功能后来收费了。\n\n## windows下安装的差异\n\n### 更新驱动\n\n正常使用的话,下载GeForce Experience然后把驱动更新到最新版即可,或者手动下载驱动,没有特殊需要的话默认最新版就好。\n\n### 安装cuda和cudnn\n\n主体部分和linux下大同小异,按要求下载安装对应版本即可,安装cuda后打开命令行输入\n\n```\nnvcc -V\n```\n\n返回版本号说明安装cuda成功。\n\n不过cudnn这里下载完后是复制到cuda对应的bin目录里面,一般是C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA。\n\n安装后有时候不能使用则需要添加环境变量,在系统环境变量里的Path项下添加几个路径\n\nC:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\n\n C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\lib\\x64\n\n安装完成后进入路径然后运行测试,成功则为以下界面。\n\n\n\n然后运行测试的代码即可。\n","slug":"Ubuntu 20.04下深度学习环境搭建以及常用工具配置","published":1,"updated":"2023-11-19T16:25:04.729Z","layout":"post","photos":[],"link":"","_id":"clta6l3uu00033svx4n97h650","content":"<h1 id=\"Ubuntu-20-04下Pytorch深度学习环境搭建以及常用工具配置\"><a href=\"#Ubuntu-20-04下Pytorch深度学习环境搭建以及常用工具配置\" class=\"headerlink\" title=\"Ubuntu 20.04下Pytorch深度学习环境搭建以及常用工具配置\"></a>Ubuntu 20.04下Pytorch深度学习环境搭建以及常用工具配置</h1><p>作者:CoderJackZhu</p>\n<p>从事计算机相关行业的在今后学习工作过程中总会接触到Linux系统,而且在很多情况下,Windows下可能会出现一些奇奇怪怪的bug,这些问题部分是系统的问题导致的,比如常见的路径中不能带中文。深度学习环境有时候为了更好的管理机器,取得更好的效率也常常采用Linux系统,这里选择Ubuntu是对于个人的萌新而言,应该选择尽量大众些的系统,出问题也容易找到解决办法,比如由于各种误操作,linux系统我至少已经重装过不下二十次了,为了更好的学习相关知识,这样一个系统的搭建也是需要的,这里写出这个博客为了方便使用,也让我之后重装系统的时候不用再找好几个博客了。</p>\n<h2 id=\"“双系统”中Ubuntu安装\"><a href=\"#“双系统”中Ubuntu安装\" class=\"headerlink\" title=\"“双系统”中Ubuntu安装\"></a>“双系统”中Ubuntu安装</h2><p>这里的所说的双系统并不是真正的单个硬盘上多个挂载点的双系统,而是把第二个系统装在移动硬盘里面,这样正常开机默认还是Windows系统,需要选择系统就在进入系统时长按<code>F11</code>(不同品牌电脑不同),选择相应的系统就可以进入了,这样的安装相比一个硬盘上多个挂载点简易不少,配置难度低,而且不易出问题,不然一不小心两个系统都不能用了,这样Linux出了问题只需要直接覆盖重装就可以了,下面是具体步骤:</p>\n<h3 id=\"准备需要的工具\"><a href=\"#准备需要的工具\" class=\"headerlink\" title=\"准备需要的工具\"></a>准备需要的工具</h3><p>这里软件方面需要准备的是,从官方网站上下载Ubuntu的镜像,以及刻录软件。刻录软件使用UltraIso或者balentEtcher都是可以的,balentEtcher相对操作更简易些。</p>\n<p>硬件需要准备的是一个U盘用于制作启动盘,尽量大于等于16G,一个移动硬盘用于安装系统,尽量大于128G,毕竟实际使用过程中数据集也比较大,还是需要给后续留足空间。</p>\n<h3 id=\"制作启动盘\"><a href=\"#制作启动盘\" class=\"headerlink\" title=\"制作启动盘\"></a>制作启动盘</h3><p>安装好Format后选择文件为之前下的系统镜像,选择硬件为U盘,然后点击Flash就可以了,等几分钟安装校验完就可以了。</p>\n<h3 id=\"安装\"><a href=\"#安装\" class=\"headerlink\" title=\"安装\"></a>安装</h3><p>然后重启并选择使用刚才的U盘启动,就可以进入安装Ubuntu的界面了,正常使用的话选择中文汉语,正常安装,勾选安装第三方软件。这个时候可以插上移动硬盘了,然后输入自己的用户名密码什么的,之后就进入选择安装位置了,这里点击清理磁盘安装就可以了,不然挂载点就很不太好理解,然后下一步点击你插入的那个硬盘,<strong>这里注意别选错</strong>,根据你的硬盘大小就能判断出了,选错其他盘的话可能你的数据就凉了,然后下一步。然后选择地图上的位置为shanghai就可以了,之后就进入安装了,等一会安装完然后点击重新启动,然后根据提示拔掉U盘,然后开机的时候选择那个硬盘启动,这个时候硬盘的名字就已经是Ubuntu了,然后两次回车就可以进入系统了,到这里,系统的安装就算完成了。</p>\n<h2 id=\"深度学习Pytorch环境配置\"><a href=\"#深度学习Pytorch环境配置\" class=\"headerlink\" title=\"深度学习Pytorch环境配置\"></a>深度学习Pytorch环境配置</h2><p>正常使用深度学习环境跑代码,GPU是必不可少,这里只演示GPU版本的pytorch的安装,所需要的工具为Anaconda、CUDA、cuDNN、Pytorch。Anaconda可以用来管理不同版本的环境,CUDA和cuDNN是使用GPU计算所需要的工具这里需要注意相互之间的匹配关系,首先去<a href=\"https://pytorch.org/\">pytorch官网</a>可以看到</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102136735.png\" alt=\"6\"></p>\n<p>因此这里选择CUDA11.3,然后根据CUDA的版本,选择cuDNN的版本,具体在下载cuDNN的时候可以看到。</p>\n<h3 id=\"安装驱动\"><a href=\"#安装驱动\" class=\"headerlink\" title=\"安装驱动\"></a>安装驱动</h3><p>安装NVIDIA驱动有多种方式,比如可以去官网下载最新版,这里介绍最简单的一种,首先打开软件与更新,然后点附加驱动这里,系统默认用的是开源的的驱动,这里选最上面的几个版本高的就可以,这里安装的cuda11.3驱动至少要470以上,然后点击应用更改等一会就可以了。</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102136053.png\" alt=\"1\"></p>\n<p>安装完成之后在命令行输入<code>nvidia-smi</code>就可以看到下图GPU情况,这就说明驱动基本没问题了。</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102136894.png\" alt=\"4\"></p>\n<h3 id=\"下载安装cuda\"><a href=\"#下载安装cuda\" class=\"headerlink\" title=\"下载安装cuda\"></a>下载安装cuda</h3><p>这里找<a href=\"https://developer.nvidia.com/cuda-downloads\">官方网站</a></p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102136125.png\" alt=\"2\"></p>\n<p>可以看到这里默认是11.6版本的,这里点击下方中的<code>Archive of Previous CUDA Releases</code>并选择对于的11.3版本,都是11.3的情况下选最后一位高的,之后进入以下界面,选择对应版本,然后先后输入下方的两行,第一行输入命令行,就开始下载了,下载完之后在对应的目录打开终端命令行,然后输入第二行,就开始安装了。</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102137818.png\" alt=\"3\"></p>\n<p>安装过程中看到勾选多个项目的时候,把第一项的X勾选框点下回车取消掉,由于之前已经安装了驱动,所有这里不需要安装里面附带的驱动,然后切换Install并点击回车,等待就可以安装好了。</p>\n<p>然后添加路径,修改<code>.bashrc</code>文件:</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo gedit ~/.bashrc</span><br></pre></td></tr></table></figure>\n\n<p>#在末尾添加:</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">export PATH=/usr/local/cuda/bin${PATH:+:${PATH}} </span><br><span class=\"line\">export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} </span><br></pre></td></tr></table></figure>\n<p>更新刚才输入的内容,在命令行输入: <code>source ~/.bashrc</code></p>\n<p>安装成功输入<code>nvcc -V</code></p>\n<h3 id=\"cuDNN的安装\"><a href=\"#cuDNN的安装\" class=\"headerlink\" title=\"cuDNN的安装\"></a>cuDNN的安装</h3><p>到<a href=\"https://developer.nvidia.com/cudnn\">官网</a>下载文件:点击如图<code>Download cuDNN</code>按钮。下载需要NVIDIA的账号,没有的需要先注册一个。</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102137133.png\" alt=\"5\"></p>\n<p>然后进入<a href=\"https://developer.nvidia.com/rdp/cudnn-archive#a-collapse742-10\">下载界面</a>并选择Previous Archive</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102137217.png\" alt=\"7\"></p>\n<p>选择CUDA11.x对于的cuDNNv8.2 选择Runtime Library版的deb文件进行下载:</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102137992.png\" alt=\"8\"></p>\n<p>安装cuDNN过程与CUDA类似:<br>在下载的文件的文件夹里面打开终端,执行命令<code>sudo dpkg -i <name></code>,其中<code><name></code>为刚才下载的deb文件名<br>执行命令<code>sudo apt install <name></code>,其中<code><name></code>要和自己下载的cudnn版本匹配,比如这里是libcudnn8</p>\n<h2 id=\"安装Anaconda\"><a href=\"#安装Anaconda\" class=\"headerlink\" title=\"安装Anaconda\"></a>安装Anaconda</h2><p>Anaconda用于控制版本管理,直接在系统的python里装不太方便,库的控制也不那么直观,使用Anaconda之后会方便很多。</p>\n<p>这里直接从<a href=\"https://www.anaconda.com/products/individual\">官网</a>下载就可以,速度也不错,下载完之后在下载的文件夹打开终端,这里重点,命令行不要输入<code>sudo</code>,直接<code>sh <name></code> <code>name</code>为刚才下的文件名然后可以了,一路回车过完协议书,然后yes同意,然后要么回车要么yes就可以了。千万别在命令行前面加<code>sudo</code>,这样anaconda3的文件夹就安装在<code>root</code>下了,这样感觉有时候不方便;直接<code>sh</code>就可以安装在你的主目录下,装好退出命令行就可以用了。</p>\n<p>安装过程先一路回车,然后按要求都yes就好。</p>\n<p>安装后退出命令行,然后重新进入命令行,然后输入<code>conda</code>,若出现如下则证明安装成功,若出现command not found则重启系统,若还不行则需要添加环境变量。</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102137141.png\" alt=\"10\"></p>\n<h2 id=\"添加环境变量\"><a href=\"#添加环境变量\" class=\"headerlink\" title=\"添加环境变量\"></a>添加环境变量</h2><p>输入</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">source ~/.bashrc</span><br></pre></td></tr></table></figure>\n\n<p>再执行conda,若好则安装结束,否则手动添加环境变量</p>\n<p>输入命令</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo vim ~/.bashrc</span><br></pre></td></tr></table></figure>\n\n<p>若vim未安装,先安装,可以使用<code>sudo apt install vim</code>安装(或者使用<code>sudo gedit ~/.bashrc</code>也可打开文件),然后执行上述命令,然后在文件的最后添加,这里的内容不要直接复制,根据自己的用户名来定</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">export</span><br><span class=\"line\">PATH=/home/<自己的用户名>/anaconda3/bin:$PATH</span><br></pre></td></tr></table></figure>\n\n<p>输入完成后点击<code>ESC</code>, 然后输入<code>:wq</code>保存退出.</p>\n<p>然后更新环境变量:</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">source ~/.bashrc</span><br></pre></td></tr></table></figure>\n\n<p>输入conda,检查是否配置成功。</p>\n<h2 id=\"创建环境并安装PyTorch\"><a href=\"#创建环境并安装PyTorch\" class=\"headerlink\" title=\"创建环境并安装PyTorch\"></a>创建环境并安装PyTorch</h2><p>安装后一般应用栏里是没有这个软件的,需要在命令行中输入<code>anaconda-navigator</code>等待进入就可以了,然后点左方的environment然后点下方的加号创建环境,想个环境的名字,选择需要的python版本,这里也可以使用命令来创建</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">conda create -n <环境名> python=3.8</span><br></pre></td></tr></table></figure>\n\n<p>等待创建完成后在命令行中输入<code>conda info -e</code>即可查看现有哪些环境</p>\n<p>然后进入相应的环境输入下面命令,其中这里使用的环境名为<code>env1</code></p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">source activate env1</span><br></pre></td></tr></table></figure>\n\n<p>即可激活,若为windows下则为<code>conda activate env1</code>。</p>\n<p>这样就进入环境了,随后输入pytorch官网上的命令:</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch</span><br></pre></td></tr></table></figure>\n\n<p>如果速度慢,则需要换源,一般默认使用清华源为以下命令:</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/</span><br><span class=\"line\"></span><br><span class=\"line\">conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge</span><br><span class=\"line\"></span><br><span class=\"line\">conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/</span><br><span class=\"line\"></span><br><span class=\"line\">conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/</span><br><span class=\"line\"></span><br><span class=\"line\">conda config --set show_channel_urls yes</span><br></pre></td></tr></table></figure>\n\n<p><strong>或者</strong>打开主目录下的隐藏文件<code>.condarc</code>,将其内容整体更换为以下内容:</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">ssl_verify: true</span><br><span class=\"line\">show_channel_urls: true</span><br><span class=\"line\"></span><br><span class=\"line\">channels:</span><br><span class=\"line\"> - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64/</span><br><span class=\"line\"> - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/</span><br><span class=\"line\"></span><br></pre></td></tr></table></figure>\n\n<p>然后运行 <code>conda clean -i</code> 清除索引缓存。</p>\n<p>这时候安装命令就要把最后的<code>-c pytorch</code>去掉,变成</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">conda install pytorch torchvision torchaudio cudatoolkit=11.3</span><br></pre></td></tr></table></figure>\n\n<p>就可以很快的下载了,也可以使用<a href=\"https://download.pytorch.org/whl/torch_stable.html\">pytorch离线安装下载</a>直接下载whl文件,然后在命令行中进入下载的文件夹,然后输入</p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">pip install torch-<span class=\"number\">1.9</span><span class=\"number\">.0</span>+cu111-cp38-cp38-win_amd64.whl</span><br></pre></td></tr></table></figure>\n<p>这样就可以安装了,若为linux则将<code>win_amd64</code>改为<code>linux_x86_64</code>即可。</p>\n<p>若为单次换下载换源则命令为:</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ </span><br></pre></td></tr></table></figure>\n\n<p>在后面加上需要安装的库名字即可。</p>\n<h2 id=\"验证安装成功\"><a href=\"#验证安装成功\" class=\"headerlink\" title=\"验证安装成功\"></a>验证安装成功</h2><p>若全部安装完成,则新建一个python脚本hello.py,内容如下</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">import torch</span><br><span class=\"line\">import torchvision</span><br><span class=\"line\">print(torch)</span><br><span class=\"line\">print(torchvision)</span><br><span class=\"line\">print(torch.cuda.is_available())</span><br><span class=\"line\">x=torch.randn(5, 3)</span><br><span class=\"line\">print(x)</span><br><span class=\"line\">print(torch.cuda.device)</span><br><span class=\"line\">print(torch.__version__)</span><br><span class=\"line\">print(torchvision.__version__)</span><br><span class=\"line\">print(torch.version)</span><br><span class=\"line\">print(torch.version.cuda) # Corresponding CUDA version</span><br><span class=\"line\">print(torch.backends.cudnn.version()) # Corresponding cuDNN version</span><br><span class=\"line\">print(torch.cuda.get_device_name(0)) # GPU type</span><br></pre></td></tr></table></figure>\n\n<p>即可查看详细情况,若cuda可用这里显示true就说明安装成功。</p>\n<h2 id=\"常用软件\"><a href=\"#常用软件\" class=\"headerlink\" title=\"常用软件\"></a>常用软件</h2><p>深度学习环境其他非常常用的软件一般还有VScode和Pychram,一般这两个都安装比较好。</p>\n<p>BT下载以及磁力链下载很多时候是需要的,因此需要下载工具</p>\n<p>下载工具可以用Free Download Manger,还是非常好用的,还有qbittorrent和Motrix作为备用下载软件,这两个软件下载后不用安装,需要用的时候打开,也非常不错。</p>\n<p>其他比如截屏剪切板等功能用utools也挺好,不过高级功能后来收费了。</p>\n<h2 id=\"windows下安装的差异\"><a href=\"#windows下安装的差异\" class=\"headerlink\" title=\"windows下安装的差异\"></a>windows下安装的差异</h2><h3 id=\"更新驱动\"><a href=\"#更新驱动\" class=\"headerlink\" title=\"更新驱动\"></a>更新驱动</h3><p>正常使用的话,下载GeForce Experience然后把驱动更新到最新版即可,或者手动下载驱动,没有特殊需要的话默认最新版就好。</p>\n<h3 id=\"安装cuda和cudnn\"><a href=\"#安装cuda和cudnn\" class=\"headerlink\" title=\"安装cuda和cudnn\"></a>安装cuda和cudnn</h3><p>主体部分和linux下大同小异,按要求下载安装对应版本即可,安装cuda后打开命令行输入</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">nvcc -V</span><br></pre></td></tr></table></figure>\n\n<p>返回版本号说明安装cuda成功。</p>\n<p>不过cudnn这里下载完后是复制到cuda对应的bin目录里面,一般是C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA。</p>\n<p>安装后有时候不能使用则需要添加环境变量,在系统环境变量里的Path项下添加几个路径</p>\n<p>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1</p>\n<p> C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\lib\\x64</p>\n<p>安装完成后进入路径然后运行测试,成功则为以下界面。</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102138180.png\" alt=\"11\"></p>\n<p>然后运行测试的代码即可。</p>\n","site":{"data":{"link":[{"class_name":"友情链接","class_desc":"那些人,那些事","link_list":[{"name":"冉崇治","link":"http://resetran.top/","avatar":"https://gcore.jsdelivr.net/gh/ranchongzhi/ranchongzhi.github.io@master/medias/logo.png","descr":"王者打野贼溜的NeRF研究者"},{"name":"六个骨头","link":"http://www.bone6.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/zhan.jpg","descr":"飞桨开发者专家"},{"name":"Evan CHEN","link":"https://lhchen.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/_8RG~~1E221F8I(K2FUV4KJ.bmp","descr":"保研清深的图表示学习、语音驱动生成大牛"},{"name":"BB酱","link":"https://www.bbbbchan.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/bb.jpg","descr":"南开大学分割领域强者"},{"name":"sund","link":"http://www.sund-xys.cn/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/sund.jpg","descr":"西交网络&无线&侧信道大爹"},{"name":"冯玉龙","link":"http://bestxinyu.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/feng.jpg","descr":"又一个大佬"},{"name":"西电浪潮俱乐部","link":"http://www.xdu-inspur.club/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/inspur.jpg","descr":"在西电的技术性交流社团"}]},{"class_name":"网站","class_desc":"值得推荐的网站","link_list":[{"name":"跟李沐学AI的入门课","link":"https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/20221004001647.png","descr":"视频网站"},{"name":"OpenMMLab","link":"https://openmmlab.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/httpsi.loli.net202005145VyHPQqR6LWF39a.png.png","descr":"比较综合性的AI框架"}]}]}},"excerpt":"","more":"<h1 id=\"Ubuntu-20-04下Pytorch深度学习环境搭建以及常用工具配置\"><a href=\"#Ubuntu-20-04下Pytorch深度学习环境搭建以及常用工具配置\" class=\"headerlink\" title=\"Ubuntu 20.04下Pytorch深度学习环境搭建以及常用工具配置\"></a>Ubuntu 20.04下Pytorch深度学习环境搭建以及常用工具配置</h1><p>作者:CoderJackZhu</p>\n<p>从事计算机相关行业的在今后学习工作过程中总会接触到Linux系统,而且在很多情况下,Windows下可能会出现一些奇奇怪怪的bug,这些问题部分是系统的问题导致的,比如常见的路径中不能带中文。深度学习环境有时候为了更好的管理机器,取得更好的效率也常常采用Linux系统,这里选择Ubuntu是对于个人的萌新而言,应该选择尽量大众些的系统,出问题也容易找到解决办法,比如由于各种误操作,linux系统我至少已经重装过不下二十次了,为了更好的学习相关知识,这样一个系统的搭建也是需要的,这里写出这个博客为了方便使用,也让我之后重装系统的时候不用再找好几个博客了。</p>\n<h2 id=\"“双系统”中Ubuntu安装\"><a href=\"#“双系统”中Ubuntu安装\" class=\"headerlink\" title=\"“双系统”中Ubuntu安装\"></a>“双系统”中Ubuntu安装</h2><p>这里的所说的双系统并不是真正的单个硬盘上多个挂载点的双系统,而是把第二个系统装在移动硬盘里面,这样正常开机默认还是Windows系统,需要选择系统就在进入系统时长按<code>F11</code>(不同品牌电脑不同),选择相应的系统就可以进入了,这样的安装相比一个硬盘上多个挂载点简易不少,配置难度低,而且不易出问题,不然一不小心两个系统都不能用了,这样Linux出了问题只需要直接覆盖重装就可以了,下面是具体步骤:</p>\n<h3 id=\"准备需要的工具\"><a href=\"#准备需要的工具\" class=\"headerlink\" title=\"准备需要的工具\"></a>准备需要的工具</h3><p>这里软件方面需要准备的是,从官方网站上下载Ubuntu的镜像,以及刻录软件。刻录软件使用UltraIso或者balentEtcher都是可以的,balentEtcher相对操作更简易些。</p>\n<p>硬件需要准备的是一个U盘用于制作启动盘,尽量大于等于16G,一个移动硬盘用于安装系统,尽量大于128G,毕竟实际使用过程中数据集也比较大,还是需要给后续留足空间。</p>\n<h3 id=\"制作启动盘\"><a href=\"#制作启动盘\" class=\"headerlink\" title=\"制作启动盘\"></a>制作启动盘</h3><p>安装好Format后选择文件为之前下的系统镜像,选择硬件为U盘,然后点击Flash就可以了,等几分钟安装校验完就可以了。</p>\n<h3 id=\"安装\"><a href=\"#安装\" class=\"headerlink\" title=\"安装\"></a>安装</h3><p>然后重启并选择使用刚才的U盘启动,就可以进入安装Ubuntu的界面了,正常使用的话选择中文汉语,正常安装,勾选安装第三方软件。这个时候可以插上移动硬盘了,然后输入自己的用户名密码什么的,之后就进入选择安装位置了,这里点击清理磁盘安装就可以了,不然挂载点就很不太好理解,然后下一步点击你插入的那个硬盘,<strong>这里注意别选错</strong>,根据你的硬盘大小就能判断出了,选错其他盘的话可能你的数据就凉了,然后下一步。然后选择地图上的位置为shanghai就可以了,之后就进入安装了,等一会安装完然后点击重新启动,然后根据提示拔掉U盘,然后开机的时候选择那个硬盘启动,这个时候硬盘的名字就已经是Ubuntu了,然后两次回车就可以进入系统了,到这里,系统的安装就算完成了。</p>\n<h2 id=\"深度学习Pytorch环境配置\"><a href=\"#深度学习Pytorch环境配置\" class=\"headerlink\" title=\"深度学习Pytorch环境配置\"></a>深度学习Pytorch环境配置</h2><p>正常使用深度学习环境跑代码,GPU是必不可少,这里只演示GPU版本的pytorch的安装,所需要的工具为Anaconda、CUDA、cuDNN、Pytorch。Anaconda可以用来管理不同版本的环境,CUDA和cuDNN是使用GPU计算所需要的工具这里需要注意相互之间的匹配关系,首先去<a href=\"https://pytorch.org/\">pytorch官网</a>可以看到</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102136735.png\" alt=\"6\"></p>\n<p>因此这里选择CUDA11.3,然后根据CUDA的版本,选择cuDNN的版本,具体在下载cuDNN的时候可以看到。</p>\n<h3 id=\"安装驱动\"><a href=\"#安装驱动\" class=\"headerlink\" title=\"安装驱动\"></a>安装驱动</h3><p>安装NVIDIA驱动有多种方式,比如可以去官网下载最新版,这里介绍最简单的一种,首先打开软件与更新,然后点附加驱动这里,系统默认用的是开源的的驱动,这里选最上面的几个版本高的就可以,这里安装的cuda11.3驱动至少要470以上,然后点击应用更改等一会就可以了。</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102136053.png\" alt=\"1\"></p>\n<p>安装完成之后在命令行输入<code>nvidia-smi</code>就可以看到下图GPU情况,这就说明驱动基本没问题了。</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102136894.png\" alt=\"4\"></p>\n<h3 id=\"下载安装cuda\"><a href=\"#下载安装cuda\" class=\"headerlink\" title=\"下载安装cuda\"></a>下载安装cuda</h3><p>这里找<a href=\"https://developer.nvidia.com/cuda-downloads\">官方网站</a></p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102136125.png\" alt=\"2\"></p>\n<p>可以看到这里默认是11.6版本的,这里点击下方中的<code>Archive of Previous CUDA Releases</code>并选择对于的11.3版本,都是11.3的情况下选最后一位高的,之后进入以下界面,选择对应版本,然后先后输入下方的两行,第一行输入命令行,就开始下载了,下载完之后在对应的目录打开终端命令行,然后输入第二行,就开始安装了。</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102137818.png\" alt=\"3\"></p>\n<p>安装过程中看到勾选多个项目的时候,把第一项的X勾选框点下回车取消掉,由于之前已经安装了驱动,所有这里不需要安装里面附带的驱动,然后切换Install并点击回车,等待就可以安装好了。</p>\n<p>然后添加路径,修改<code>.bashrc</code>文件:</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo gedit ~/.bashrc</span><br></pre></td></tr></table></figure>\n\n<p>#在末尾添加:</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">export PATH=/usr/local/cuda/bin${PATH:+:${PATH}} </span><br><span class=\"line\">export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} </span><br></pre></td></tr></table></figure>\n<p>更新刚才输入的内容,在命令行输入: <code>source ~/.bashrc</code></p>\n<p>安装成功输入<code>nvcc -V</code></p>\n<h3 id=\"cuDNN的安装\"><a href=\"#cuDNN的安装\" class=\"headerlink\" title=\"cuDNN的安装\"></a>cuDNN的安装</h3><p>到<a href=\"https://developer.nvidia.com/cudnn\">官网</a>下载文件:点击如图<code>Download cuDNN</code>按钮。下载需要NVIDIA的账号,没有的需要先注册一个。</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102137133.png\" alt=\"5\"></p>\n<p>然后进入<a href=\"https://developer.nvidia.com/rdp/cudnn-archive#a-collapse742-10\">下载界面</a>并选择Previous Archive</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102137217.png\" alt=\"7\"></p>\n<p>选择CUDA11.x对于的cuDNNv8.2 选择Runtime Library版的deb文件进行下载:</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102137992.png\" alt=\"8\"></p>\n<p>安装cuDNN过程与CUDA类似:<br>在下载的文件的文件夹里面打开终端,执行命令<code>sudo dpkg -i <name></code>,其中<code><name></code>为刚才下载的deb文件名<br>执行命令<code>sudo apt install <name></code>,其中<code><name></code>要和自己下载的cudnn版本匹配,比如这里是libcudnn8</p>\n<h2 id=\"安装Anaconda\"><a href=\"#安装Anaconda\" class=\"headerlink\" title=\"安装Anaconda\"></a>安装Anaconda</h2><p>Anaconda用于控制版本管理,直接在系统的python里装不太方便,库的控制也不那么直观,使用Anaconda之后会方便很多。</p>\n<p>这里直接从<a href=\"https://www.anaconda.com/products/individual\">官网</a>下载就可以,速度也不错,下载完之后在下载的文件夹打开终端,这里重点,命令行不要输入<code>sudo</code>,直接<code>sh <name></code> <code>name</code>为刚才下的文件名然后可以了,一路回车过完协议书,然后yes同意,然后要么回车要么yes就可以了。千万别在命令行前面加<code>sudo</code>,这样anaconda3的文件夹就安装在<code>root</code>下了,这样感觉有时候不方便;直接<code>sh</code>就可以安装在你的主目录下,装好退出命令行就可以用了。</p>\n<p>安装过程先一路回车,然后按要求都yes就好。</p>\n<p>安装后退出命令行,然后重新进入命令行,然后输入<code>conda</code>,若出现如下则证明安装成功,若出现command not found则重启系统,若还不行则需要添加环境变量。</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102137141.png\" alt=\"10\"></p>\n<h2 id=\"添加环境变量\"><a href=\"#添加环境变量\" class=\"headerlink\" title=\"添加环境变量\"></a>添加环境变量</h2><p>输入</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">source ~/.bashrc</span><br></pre></td></tr></table></figure>\n\n<p>再执行conda,若好则安装结束,否则手动添加环境变量</p>\n<p>输入命令</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo vim ~/.bashrc</span><br></pre></td></tr></table></figure>\n\n<p>若vim未安装,先安装,可以使用<code>sudo apt install vim</code>安装(或者使用<code>sudo gedit ~/.bashrc</code>也可打开文件),然后执行上述命令,然后在文件的最后添加,这里的内容不要直接复制,根据自己的用户名来定</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">export</span><br><span class=\"line\">PATH=/home/<自己的用户名>/anaconda3/bin:$PATH</span><br></pre></td></tr></table></figure>\n\n<p>输入完成后点击<code>ESC</code>, 然后输入<code>:wq</code>保存退出.</p>\n<p>然后更新环境变量:</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">source ~/.bashrc</span><br></pre></td></tr></table></figure>\n\n<p>输入conda,检查是否配置成功。</p>\n<h2 id=\"创建环境并安装PyTorch\"><a href=\"#创建环境并安装PyTorch\" class=\"headerlink\" title=\"创建环境并安装PyTorch\"></a>创建环境并安装PyTorch</h2><p>安装后一般应用栏里是没有这个软件的,需要在命令行中输入<code>anaconda-navigator</code>等待进入就可以了,然后点左方的environment然后点下方的加号创建环境,想个环境的名字,选择需要的python版本,这里也可以使用命令来创建</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">conda create -n <环境名> python=3.8</span><br></pre></td></tr></table></figure>\n\n<p>等待创建完成后在命令行中输入<code>conda info -e</code>即可查看现有哪些环境</p>\n<p>然后进入相应的环境输入下面命令,其中这里使用的环境名为<code>env1</code></p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">source activate env1</span><br></pre></td></tr></table></figure>\n\n<p>即可激活,若为windows下则为<code>conda activate env1</code>。</p>\n<p>这样就进入环境了,随后输入pytorch官网上的命令:</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch</span><br></pre></td></tr></table></figure>\n\n<p>如果速度慢,则需要换源,一般默认使用清华源为以下命令:</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/</span><br><span class=\"line\"></span><br><span class=\"line\">conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge</span><br><span class=\"line\"></span><br><span class=\"line\">conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/</span><br><span class=\"line\"></span><br><span class=\"line\">conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/</span><br><span class=\"line\"></span><br><span class=\"line\">conda config --set show_channel_urls yes</span><br></pre></td></tr></table></figure>\n\n<p><strong>或者</strong>打开主目录下的隐藏文件<code>.condarc</code>,将其内容整体更换为以下内容:</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">ssl_verify: true</span><br><span class=\"line\">show_channel_urls: true</span><br><span class=\"line\"></span><br><span class=\"line\">channels:</span><br><span class=\"line\"> - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64/</span><br><span class=\"line\"> - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/</span><br><span class=\"line\"></span><br></pre></td></tr></table></figure>\n\n<p>然后运行 <code>conda clean -i</code> 清除索引缓存。</p>\n<p>这时候安装命令就要把最后的<code>-c pytorch</code>去掉,变成</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">conda install pytorch torchvision torchaudio cudatoolkit=11.3</span><br></pre></td></tr></table></figure>\n\n<p>就可以很快的下载了,也可以使用<a href=\"https://download.pytorch.org/whl/torch_stable.html\">pytorch离线安装下载</a>直接下载whl文件,然后在命令行中进入下载的文件夹,然后输入</p>\n<figure class=\"highlight python\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">pip install torch-<span class=\"number\">1.9</span><span class=\"number\">.0</span>+cu111-cp38-cp38-win_amd64.whl</span><br></pre></td></tr></table></figure>\n<p>这样就可以安装了,若为linux则将<code>win_amd64</code>改为<code>linux_x86_64</code>即可。</p>\n<p>若为单次换下载换源则命令为:</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ </span><br></pre></td></tr></table></figure>\n\n<p>在后面加上需要安装的库名字即可。</p>\n<h2 id=\"验证安装成功\"><a href=\"#验证安装成功\" class=\"headerlink\" title=\"验证安装成功\"></a>验证安装成功</h2><p>若全部安装完成,则新建一个python脚本hello.py,内容如下</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br><span class=\"line\">2</span><br><span class=\"line\">3</span><br><span class=\"line\">4</span><br><span class=\"line\">5</span><br><span class=\"line\">6</span><br><span class=\"line\">7</span><br><span class=\"line\">8</span><br><span class=\"line\">9</span><br><span class=\"line\">10</span><br><span class=\"line\">11</span><br><span class=\"line\">12</span><br><span class=\"line\">13</span><br><span class=\"line\">14</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">import torch</span><br><span class=\"line\">import torchvision</span><br><span class=\"line\">print(torch)</span><br><span class=\"line\">print(torchvision)</span><br><span class=\"line\">print(torch.cuda.is_available())</span><br><span class=\"line\">x=torch.randn(5, 3)</span><br><span class=\"line\">print(x)</span><br><span class=\"line\">print(torch.cuda.device)</span><br><span class=\"line\">print(torch.__version__)</span><br><span class=\"line\">print(torchvision.__version__)</span><br><span class=\"line\">print(torch.version)</span><br><span class=\"line\">print(torch.version.cuda) # Corresponding CUDA version</span><br><span class=\"line\">print(torch.backends.cudnn.version()) # Corresponding cuDNN version</span><br><span class=\"line\">print(torch.cuda.get_device_name(0)) # GPU type</span><br></pre></td></tr></table></figure>\n\n<p>即可查看详细情况,若cuda可用这里显示true就说明安装成功。</p>\n<h2 id=\"常用软件\"><a href=\"#常用软件\" class=\"headerlink\" title=\"常用软件\"></a>常用软件</h2><p>深度学习环境其他非常常用的软件一般还有VScode和Pychram,一般这两个都安装比较好。</p>\n<p>BT下载以及磁力链下载很多时候是需要的,因此需要下载工具</p>\n<p>下载工具可以用Free Download Manger,还是非常好用的,还有qbittorrent和Motrix作为备用下载软件,这两个软件下载后不用安装,需要用的时候打开,也非常不错。</p>\n<p>其他比如截屏剪切板等功能用utools也挺好,不过高级功能后来收费了。</p>\n<h2 id=\"windows下安装的差异\"><a href=\"#windows下安装的差异\" class=\"headerlink\" title=\"windows下安装的差异\"></a>windows下安装的差异</h2><h3 id=\"更新驱动\"><a href=\"#更新驱动\" class=\"headerlink\" title=\"更新驱动\"></a>更新驱动</h3><p>正常使用的话,下载GeForce Experience然后把驱动更新到最新版即可,或者手动下载驱动,没有特殊需要的话默认最新版就好。</p>\n<h3 id=\"安装cuda和cudnn\"><a href=\"#安装cuda和cudnn\" class=\"headerlink\" title=\"安装cuda和cudnn\"></a>安装cuda和cudnn</h3><p>主体部分和linux下大同小异,按要求下载安装对应版本即可,安装cuda后打开命令行输入</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">nvcc -V</span><br></pre></td></tr></table></figure>\n\n<p>返回版本号说明安装cuda成功。</p>\n<p>不过cudnn这里下载完后是复制到cuda对应的bin目录里面,一般是C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA。</p>\n<p>安装后有时候不能使用则需要添加环境变量,在系统环境变量里的Path项下添加几个路径</p>\n<p>C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1</p>\n<p> C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\lib\\x64</p>\n<p>安装完成后进入路径然后运行测试,成功则为以下界面。</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102138180.png\" alt=\"11\"></p>\n<p>然后运行测试的代码即可。</p>\n"},{"title":"Ubuntu的基本使用","date":"2022-11-01T23:17:37.000Z","keywords":"环境、命令","description":"一点小记录","top_img":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/nilu1.jpg","comments":1,"cover":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/nilu1.jpg","toc":null,"toc_number":null,"copyright":null,"copyright_author":"Jack Zhu","copyright_author_href":null,"copyright_url":"http://jackzhu.top/","copyright_info":null,"mathjax":null,"katex":null,"aplayer":null,"highlight_shrink":null,"aside":null,"_content":"\n实验室的服务器到了,今天给组里的同学们分享了一下Ubuntu的基本使用,匆忙写了一点相关的东西,顺便发上来,虽然也挺基础的,但反正博客也没多少东西,就记录一下好了。\n\n# 文件组织结构\n\n`/`为根目录,为系统最基本的目录\n\n`/home`下有用户名的文件夹,该文件夹就是`~`为主目录,为日常使用的目录\n\n命令在终端中输入,需要注意当前所在的文件夹\n\n# 常用命令\n\n创建文件夹\n\n```\nmkdir xx\n```\n\n进入文件夹\n\n```\ncd xxx\n```\n\n可以使用相对路劲和绝对路径\n\n使用相对目录回到上一级目录\n\n```\ncd ..\n```\n\n进入根目录\n\n```\ncd /\n```\n\n根目录下的文件非常重要,不要轻易动。\n\n显示当前文件夹下有哪些文件和文件夹\n\n```\nls\n```\n\n后面可以接参数\n\n如果是接-a则是查看隐藏文件\n\n```\nls -a\n```\n\n如果后接-l则是查看详细信息,包括权限\n\nvim的使用\n\nvim是一个非常经典的文件编辑工具\n\n```\nvim hello.py\n```\n\n即可进入编辑\n\n进入模式之后可以点击键盘的`i`或者`a`插入,即可输入,方向键可以控制,详细的命令很多,可以自行查询\n\n编辑完成之后,需要点击`esc`退出编辑模式\n\n随后点击`shift + :`,就是输入:,然后输入w表示保存,随后输入q表示退出\n\n即输入`:wq`完成保存退出,后面有时候需要加上`!`表示强制\n\n# 权限\n\nroot是最高权限,在此状态下不要轻易动一些东西,危险\n\n```\nsudo -i\n```\n\n进入root模式\n\n或者\n\n```\nsudo su\n```\n\n\n\n```\nexit\n```\n\n退出root模式\n\n发现文件上有锁或者x说明当前是不能使用的,需要授权\n\n权限包括三个部分,用户user、组group、其他人other\n\n权限内容也包括方面,读r、写w、执行x,对应的编码是4、2、1\n\n如向日葵远程传文件,无法执行,常用\n\n```\nsudo chmod 777 xxx\n```\n\nxxx为文件名,包括扩展名\n\n给文件夹和文件夹下的所有都授权\n\n```\nsudo chmod -R 777 xxx\n```\n\n常用*\n\n如\n\n```\nsudo chmod 777 *\n```\n\n*一般是指全部,这里就是指当前文件夹下的所有文件(不包含下一级目录)\n\n很多命令执行没有权限的时候都需要前面加`sudo`\n\n删除\n\n```\nsudo rm xx\n```\n\n有时候后面会跟-rf,表示不询问,把子目录也都删除,**慎用,非常危险**\n\n# 日常使用文件\n\n下载的`.deb`文件可以直接点击安装,或者使用\n\n```\nsudo dpkg -i xxx\n```\n\n也可以安装\n\n`.sh`文件可以直接输入`./xxx.sh`执行,或者`sh xxx.sh`,没有权限的时候先授权\n\n常用命令,查看有哪些包可以升级\n\n```\nsudo apt update\n```\n\n随后执行\n\n```\nsudo apt upgrade\n```\n\n将这些包升级,这是经常需要做的\n\napt为一种包管理的工具,有很多时候可以直接\n\n```\nsudo apt install xx\n```\n\n直接下载安装\n\nsnap是ubuntu近些年大力推广的一种包管理的工具\n\n# anaconda的基本使用\n\n创建虚拟环境可以使用\n\n```\nconda create -n <name> python=3.x\n```\n\n这种方式,随后可以根据`requirements.txt`的信息执行\n\n```\npip install -r requirements.txt\n```\n\n安装所需的包\n\n也可以通过\n\n```\nconda env create -f environment.yaml\n```\n\n从yaml文件中创建环境并安装包。\n\n在linux下使用\n\n```\nsource activate <name>\n```\n\n在windows下执行\n\n```\nconda activate <name>\n```\n\n激活指定的虚拟环境\n\n使用以下命令可以删除环境\n\n```\nconda remove -n <name> --all\n```\n\n# ssh\n\n这是一种非常方便的远程控制的方法,广泛使用\n\n```\nssh ps@10.120.16.12\n```\n\n输入密码即可远程命令行控制,ps为用户名,后面的为当前局域网下的ip地址,目前在有线校园网的情况下可以直接这样连接\n\npycharm(专业版)、vscode等软件都可以直接使用远程ssh的解释器,本地写代码,然后远程直接跑。\n","source":"_posts/ubuntu的使用.md","raw":"---\ntitle: Ubuntu的基本使用\ndate: 2022-11-01 23:17:37\ntags: Ubuntu\ncategories: Ubuntu\nkeywords: 环境、命令\ndescription: 一点小记录\ntop_img: https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/nilu1.jpg\ncomments: true\ncover: https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/nilu1.jpg\ntoc:\ntoc_number:\ncopyright:\ncopyright_author: Jack Zhu\ncopyright_author_href: \ncopyright_url: http://jackzhu.top/\ncopyright_info:\nmathjax:\nkatex:\naplayer:\nhighlight_shrink:\naside:\n---\n\n实验室的服务器到了,今天给组里的同学们分享了一下Ubuntu的基本使用,匆忙写了一点相关的东西,顺便发上来,虽然也挺基础的,但反正博客也没多少东西,就记录一下好了。\n\n# 文件组织结构\n\n`/`为根目录,为系统最基本的目录\n\n`/home`下有用户名的文件夹,该文件夹就是`~`为主目录,为日常使用的目录\n\n命令在终端中输入,需要注意当前所在的文件夹\n\n# 常用命令\n\n创建文件夹\n\n```\nmkdir xx\n```\n\n进入文件夹\n\n```\ncd xxx\n```\n\n可以使用相对路劲和绝对路径\n\n使用相对目录回到上一级目录\n\n```\ncd ..\n```\n\n进入根目录\n\n```\ncd /\n```\n\n根目录下的文件非常重要,不要轻易动。\n\n显示当前文件夹下有哪些文件和文件夹\n\n```\nls\n```\n\n后面可以接参数\n\n如果是接-a则是查看隐藏文件\n\n```\nls -a\n```\n\n如果后接-l则是查看详细信息,包括权限\n\nvim的使用\n\nvim是一个非常经典的文件编辑工具\n\n```\nvim hello.py\n```\n\n即可进入编辑\n\n进入模式之后可以点击键盘的`i`或者`a`插入,即可输入,方向键可以控制,详细的命令很多,可以自行查询\n\n编辑完成之后,需要点击`esc`退出编辑模式\n\n随后点击`shift + :`,就是输入:,然后输入w表示保存,随后输入q表示退出\n\n即输入`:wq`完成保存退出,后面有时候需要加上`!`表示强制\n\n# 权限\n\nroot是最高权限,在此状态下不要轻易动一些东西,危险\n\n```\nsudo -i\n```\n\n进入root模式\n\n或者\n\n```\nsudo su\n```\n\n\n\n```\nexit\n```\n\n退出root模式\n\n发现文件上有锁或者x说明当前是不能使用的,需要授权\n\n权限包括三个部分,用户user、组group、其他人other\n\n权限内容也包括方面,读r、写w、执行x,对应的编码是4、2、1\n\n如向日葵远程传文件,无法执行,常用\n\n```\nsudo chmod 777 xxx\n```\n\nxxx为文件名,包括扩展名\n\n给文件夹和文件夹下的所有都授权\n\n```\nsudo chmod -R 777 xxx\n```\n\n常用*\n\n如\n\n```\nsudo chmod 777 *\n```\n\n*一般是指全部,这里就是指当前文件夹下的所有文件(不包含下一级目录)\n\n很多命令执行没有权限的时候都需要前面加`sudo`\n\n删除\n\n```\nsudo rm xx\n```\n\n有时候后面会跟-rf,表示不询问,把子目录也都删除,**慎用,非常危险**\n\n# 日常使用文件\n\n下载的`.deb`文件可以直接点击安装,或者使用\n\n```\nsudo dpkg -i xxx\n```\n\n也可以安装\n\n`.sh`文件可以直接输入`./xxx.sh`执行,或者`sh xxx.sh`,没有权限的时候先授权\n\n常用命令,查看有哪些包可以升级\n\n```\nsudo apt update\n```\n\n随后执行\n\n```\nsudo apt upgrade\n```\n\n将这些包升级,这是经常需要做的\n\napt为一种包管理的工具,有很多时候可以直接\n\n```\nsudo apt install xx\n```\n\n直接下载安装\n\nsnap是ubuntu近些年大力推广的一种包管理的工具\n\n# anaconda的基本使用\n\n创建虚拟环境可以使用\n\n```\nconda create -n <name> python=3.x\n```\n\n这种方式,随后可以根据`requirements.txt`的信息执行\n\n```\npip install -r requirements.txt\n```\n\n安装所需的包\n\n也可以通过\n\n```\nconda env create -f environment.yaml\n```\n\n从yaml文件中创建环境并安装包。\n\n在linux下使用\n\n```\nsource activate <name>\n```\n\n在windows下执行\n\n```\nconda activate <name>\n```\n\n激活指定的虚拟环境\n\n使用以下命令可以删除环境\n\n```\nconda remove -n <name> --all\n```\n\n# ssh\n\n这是一种非常方便的远程控制的方法,广泛使用\n\n```\nssh ps@10.120.16.12\n```\n\n输入密码即可远程命令行控制,ps为用户名,后面的为当前局域网下的ip地址,目前在有线校园网的情况下可以直接这样连接\n\npycharm(专业版)、vscode等软件都可以直接使用远程ssh的解释器,本地写代码,然后远程直接跑。\n","slug":"ubuntu的使用","published":1,"updated":"2023-03-23T13:47:53.194Z","layout":"post","photos":[],"link":"","_id":"clta6l3ux00073svxctxj4nh2","content":"<p>实验室的服务器到了,今天给组里的同学们分享了一下Ubuntu的基本使用,匆忙写了一点相关的东西,顺便发上来,虽然也挺基础的,但反正博客也没多少东西,就记录一下好了。</p>\n<h1 id=\"文件组织结构\"><a href=\"#文件组织结构\" class=\"headerlink\" title=\"文件组织结构\"></a>文件组织结构</h1><p><code>/</code>为根目录,为系统最基本的目录</p>\n<p><code>/home</code>下有用户名的文件夹,该文件夹就是<code>~</code>为主目录,为日常使用的目录</p>\n<p>命令在终端中输入,需要注意当前所在的文件夹</p>\n<h1 id=\"常用命令\"><a href=\"#常用命令\" class=\"headerlink\" title=\"常用命令\"></a>常用命令</h1><p>创建文件夹</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">mkdir xx</span><br></pre></td></tr></table></figure>\n\n<p>进入文件夹</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">cd xxx</span><br></pre></td></tr></table></figure>\n\n<p>可以使用相对路劲和绝对路径</p>\n<p>使用相对目录回到上一级目录</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">cd ..</span><br></pre></td></tr></table></figure>\n\n<p>进入根目录</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">cd /</span><br></pre></td></tr></table></figure>\n\n<p>根目录下的文件非常重要,不要轻易动。</p>\n<p>显示当前文件夹下有哪些文件和文件夹</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">ls</span><br></pre></td></tr></table></figure>\n\n<p>后面可以接参数</p>\n<p>如果是接-a则是查看隐藏文件</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">ls -a</span><br></pre></td></tr></table></figure>\n\n<p>如果后接-l则是查看详细信息,包括权限</p>\n<p>vim的使用</p>\n<p>vim是一个非常经典的文件编辑工具</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">vim hello.py</span><br></pre></td></tr></table></figure>\n\n<p>即可进入编辑</p>\n<p>进入模式之后可以点击键盘的<code>i</code>或者<code>a</code>插入,即可输入,方向键可以控制,详细的命令很多,可以自行查询</p>\n<p>编辑完成之后,需要点击<code>esc</code>退出编辑模式</p>\n<p>随后点击<code>shift + :</code>,就是输入:,然后输入w表示保存,随后输入q表示退出</p>\n<p>即输入<code>:wq</code>完成保存退出,后面有时候需要加上<code>!</code>表示强制</p>\n<h1 id=\"权限\"><a href=\"#权限\" class=\"headerlink\" title=\"权限\"></a>权限</h1><p>root是最高权限,在此状态下不要轻易动一些东西,危险</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo -i</span><br></pre></td></tr></table></figure>\n\n<p>进入root模式</p>\n<p>或者</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo su</span><br></pre></td></tr></table></figure>\n\n\n\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">exit</span><br></pre></td></tr></table></figure>\n\n<p>退出root模式</p>\n<p>发现文件上有锁或者x说明当前是不能使用的,需要授权</p>\n<p>权限包括三个部分,用户user、组group、其他人other</p>\n<p>权限内容也包括方面,读r、写w、执行x,对应的编码是4、2、1</p>\n<p>如向日葵远程传文件,无法执行,常用</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo chmod 777 xxx</span><br></pre></td></tr></table></figure>\n\n<p>xxx为文件名,包括扩展名</p>\n<p>给文件夹和文件夹下的所有都授权</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo chmod -R 777 xxx</span><br></pre></td></tr></table></figure>\n\n<p>常用*</p>\n<p>如</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo chmod 777 *</span><br></pre></td></tr></table></figure>\n\n<p>*一般是指全部,这里就是指当前文件夹下的所有文件(不包含下一级目录)</p>\n<p>很多命令执行没有权限的时候都需要前面加<code>sudo</code></p>\n<p>删除</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo rm xx</span><br></pre></td></tr></table></figure>\n\n<p>有时候后面会跟-rf,表示不询问,把子目录也都删除,<strong>慎用,非常危险</strong></p>\n<h1 id=\"日常使用文件\"><a href=\"#日常使用文件\" class=\"headerlink\" title=\"日常使用文件\"></a>日常使用文件</h1><p>下载的<code>.deb</code>文件可以直接点击安装,或者使用</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo dpkg -i xxx</span><br></pre></td></tr></table></figure>\n\n<p>也可以安装</p>\n<p><code>.sh</code>文件可以直接输入<code>./xxx.sh</code>执行,或者<code>sh xxx.sh</code>,没有权限的时候先授权</p>\n<p>常用命令,查看有哪些包可以升级</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo apt update</span><br></pre></td></tr></table></figure>\n\n<p>随后执行</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo apt upgrade</span><br></pre></td></tr></table></figure>\n\n<p>将这些包升级,这是经常需要做的</p>\n<p>apt为一种包管理的工具,有很多时候可以直接</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo apt install xx</span><br></pre></td></tr></table></figure>\n\n<p>直接下载安装</p>\n<p>snap是ubuntu近些年大力推广的一种包管理的工具</p>\n<h1 id=\"anaconda的基本使用\"><a href=\"#anaconda的基本使用\" class=\"headerlink\" title=\"anaconda的基本使用\"></a>anaconda的基本使用</h1><p>创建虚拟环境可以使用</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">conda create -n <name> python=3.x</span><br></pre></td></tr></table></figure>\n\n<p>这种方式,随后可以根据<code>requirements.txt</code>的信息执行</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">pip install -r requirements.txt</span><br></pre></td></tr></table></figure>\n\n<p>安装所需的包</p>\n<p>也可以通过</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">conda env create -f environment.yaml</span><br></pre></td></tr></table></figure>\n\n<p>从yaml文件中创建环境并安装包。</p>\n<p>在linux下使用</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">source activate <name></span><br></pre></td></tr></table></figure>\n\n<p>在windows下执行</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">conda activate <name></span><br></pre></td></tr></table></figure>\n\n<p>激活指定的虚拟环境</p>\n<p>使用以下命令可以删除环境</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">conda remove -n <name> --all</span><br></pre></td></tr></table></figure>\n\n<h1 id=\"ssh\"><a href=\"#ssh\" class=\"headerlink\" title=\"ssh\"></a>ssh</h1><p>这是一种非常方便的远程控制的方法,广泛使用</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">ssh ps@10.120.16.12</span><br></pre></td></tr></table></figure>\n\n<p>输入密码即可远程命令行控制,ps为用户名,后面的为当前局域网下的ip地址,目前在有线校园网的情况下可以直接这样连接</p>\n<p>pycharm(专业版)、vscode等软件都可以直接使用远程ssh的解释器,本地写代码,然后远程直接跑。</p>\n","site":{"data":{"link":[{"class_name":"友情链接","class_desc":"那些人,那些事","link_list":[{"name":"冉崇治","link":"http://resetran.top/","avatar":"https://gcore.jsdelivr.net/gh/ranchongzhi/ranchongzhi.github.io@master/medias/logo.png","descr":"王者打野贼溜的NeRF研究者"},{"name":"六个骨头","link":"http://www.bone6.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/zhan.jpg","descr":"飞桨开发者专家"},{"name":"Evan CHEN","link":"https://lhchen.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/_8RG~~1E221F8I(K2FUV4KJ.bmp","descr":"保研清深的图表示学习、语音驱动生成大牛"},{"name":"BB酱","link":"https://www.bbbbchan.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/bb.jpg","descr":"南开大学分割领域强者"},{"name":"sund","link":"http://www.sund-xys.cn/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/sund.jpg","descr":"西交网络&无线&侧信道大爹"},{"name":"冯玉龙","link":"http://bestxinyu.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/feng.jpg","descr":"又一个大佬"},{"name":"西电浪潮俱乐部","link":"http://www.xdu-inspur.club/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/inspur.jpg","descr":"在西电的技术性交流社团"}]},{"class_name":"网站","class_desc":"值得推荐的网站","link_list":[{"name":"跟李沐学AI的入门课","link":"https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/20221004001647.png","descr":"视频网站"},{"name":"OpenMMLab","link":"https://openmmlab.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/httpsi.loli.net202005145VyHPQqR6LWF39a.png.png","descr":"比较综合性的AI框架"}]}]}},"excerpt":"","more":"<p>实验室的服务器到了,今天给组里的同学们分享了一下Ubuntu的基本使用,匆忙写了一点相关的东西,顺便发上来,虽然也挺基础的,但反正博客也没多少东西,就记录一下好了。</p>\n<h1 id=\"文件组织结构\"><a href=\"#文件组织结构\" class=\"headerlink\" title=\"文件组织结构\"></a>文件组织结构</h1><p><code>/</code>为根目录,为系统最基本的目录</p>\n<p><code>/home</code>下有用户名的文件夹,该文件夹就是<code>~</code>为主目录,为日常使用的目录</p>\n<p>命令在终端中输入,需要注意当前所在的文件夹</p>\n<h1 id=\"常用命令\"><a href=\"#常用命令\" class=\"headerlink\" title=\"常用命令\"></a>常用命令</h1><p>创建文件夹</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">mkdir xx</span><br></pre></td></tr></table></figure>\n\n<p>进入文件夹</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">cd xxx</span><br></pre></td></tr></table></figure>\n\n<p>可以使用相对路劲和绝对路径</p>\n<p>使用相对目录回到上一级目录</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">cd ..</span><br></pre></td></tr></table></figure>\n\n<p>进入根目录</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">cd /</span><br></pre></td></tr></table></figure>\n\n<p>根目录下的文件非常重要,不要轻易动。</p>\n<p>显示当前文件夹下有哪些文件和文件夹</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">ls</span><br></pre></td></tr></table></figure>\n\n<p>后面可以接参数</p>\n<p>如果是接-a则是查看隐藏文件</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">ls -a</span><br></pre></td></tr></table></figure>\n\n<p>如果后接-l则是查看详细信息,包括权限</p>\n<p>vim的使用</p>\n<p>vim是一个非常经典的文件编辑工具</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">vim hello.py</span><br></pre></td></tr></table></figure>\n\n<p>即可进入编辑</p>\n<p>进入模式之后可以点击键盘的<code>i</code>或者<code>a</code>插入,即可输入,方向键可以控制,详细的命令很多,可以自行查询</p>\n<p>编辑完成之后,需要点击<code>esc</code>退出编辑模式</p>\n<p>随后点击<code>shift + :</code>,就是输入:,然后输入w表示保存,随后输入q表示退出</p>\n<p>即输入<code>:wq</code>完成保存退出,后面有时候需要加上<code>!</code>表示强制</p>\n<h1 id=\"权限\"><a href=\"#权限\" class=\"headerlink\" title=\"权限\"></a>权限</h1><p>root是最高权限,在此状态下不要轻易动一些东西,危险</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo -i</span><br></pre></td></tr></table></figure>\n\n<p>进入root模式</p>\n<p>或者</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo su</span><br></pre></td></tr></table></figure>\n\n\n\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">exit</span><br></pre></td></tr></table></figure>\n\n<p>退出root模式</p>\n<p>发现文件上有锁或者x说明当前是不能使用的,需要授权</p>\n<p>权限包括三个部分,用户user、组group、其他人other</p>\n<p>权限内容也包括方面,读r、写w、执行x,对应的编码是4、2、1</p>\n<p>如向日葵远程传文件,无法执行,常用</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo chmod 777 xxx</span><br></pre></td></tr></table></figure>\n\n<p>xxx为文件名,包括扩展名</p>\n<p>给文件夹和文件夹下的所有都授权</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo chmod -R 777 xxx</span><br></pre></td></tr></table></figure>\n\n<p>常用*</p>\n<p>如</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo chmod 777 *</span><br></pre></td></tr></table></figure>\n\n<p>*一般是指全部,这里就是指当前文件夹下的所有文件(不包含下一级目录)</p>\n<p>很多命令执行没有权限的时候都需要前面加<code>sudo</code></p>\n<p>删除</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo rm xx</span><br></pre></td></tr></table></figure>\n\n<p>有时候后面会跟-rf,表示不询问,把子目录也都删除,<strong>慎用,非常危险</strong></p>\n<h1 id=\"日常使用文件\"><a href=\"#日常使用文件\" class=\"headerlink\" title=\"日常使用文件\"></a>日常使用文件</h1><p>下载的<code>.deb</code>文件可以直接点击安装,或者使用</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo dpkg -i xxx</span><br></pre></td></tr></table></figure>\n\n<p>也可以安装</p>\n<p><code>.sh</code>文件可以直接输入<code>./xxx.sh</code>执行,或者<code>sh xxx.sh</code>,没有权限的时候先授权</p>\n<p>常用命令,查看有哪些包可以升级</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo apt update</span><br></pre></td></tr></table></figure>\n\n<p>随后执行</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo apt upgrade</span><br></pre></td></tr></table></figure>\n\n<p>将这些包升级,这是经常需要做的</p>\n<p>apt为一种包管理的工具,有很多时候可以直接</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">sudo apt install xx</span><br></pre></td></tr></table></figure>\n\n<p>直接下载安装</p>\n<p>snap是ubuntu近些年大力推广的一种包管理的工具</p>\n<h1 id=\"anaconda的基本使用\"><a href=\"#anaconda的基本使用\" class=\"headerlink\" title=\"anaconda的基本使用\"></a>anaconda的基本使用</h1><p>创建虚拟环境可以使用</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">conda create -n <name> python=3.x</span><br></pre></td></tr></table></figure>\n\n<p>这种方式,随后可以根据<code>requirements.txt</code>的信息执行</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">pip install -r requirements.txt</span><br></pre></td></tr></table></figure>\n\n<p>安装所需的包</p>\n<p>也可以通过</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">conda env create -f environment.yaml</span><br></pre></td></tr></table></figure>\n\n<p>从yaml文件中创建环境并安装包。</p>\n<p>在linux下使用</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">source activate <name></span><br></pre></td></tr></table></figure>\n\n<p>在windows下执行</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">conda activate <name></span><br></pre></td></tr></table></figure>\n\n<p>激活指定的虚拟环境</p>\n<p>使用以下命令可以删除环境</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">conda remove -n <name> --all</span><br></pre></td></tr></table></figure>\n\n<h1 id=\"ssh\"><a href=\"#ssh\" class=\"headerlink\" title=\"ssh\"></a>ssh</h1><p>这是一种非常方便的远程控制的方法,广泛使用</p>\n<figure class=\"highlight plaintext\"><table><tr><td class=\"gutter\"><pre><span class=\"line\">1</span><br></pre></td><td class=\"code\"><pre><span class=\"line\">ssh ps@10.120.16.12</span><br></pre></td></tr></table></figure>\n\n<p>输入密码即可远程命令行控制,ps为用户名,后面的为当前局域网下的ip地址,目前在有线校园网的情况下可以直接这样连接</p>\n<p>pycharm(专业版)、vscode等软件都可以直接使用远程ssh的解释器,本地写代码,然后远程直接跑。</p>\n"},{"title":"今日随笔","date":"2022-05-10T00:00:00.000Z","keywords":"图床、GitHub","description":"进步了","top_img":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/moon.jpg","cover":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/moon.jpg","comments":1,"toc":null,"toc_number":null,"copyright":null,"copyright_author":"Jack Zhu","copyright_author_href":null,"copyright_url":"http://jackzhu.top/","copyright_info":null,"mathjax":null,"katex":null,"aplayer":null,"highlight_shrink":null,"aside":null,"_content":"\n# 我终于把图床修好了\n\n之前gitee的图床用不了,因此这段时间博客都一片404(其实本来也影响不大,毕竟也没几篇博客),今天总算抽出时间修一下,虽然不是什么特别麻烦的事,就是懒。之前的图还真是手动一个一个传的,效率太低,现在用了typora+picgo+github,总算是能用了,方便了不少,希望以后会多更新下吧。之前说的要把大作业都传上去,也能方便后面的学弟学妹,但是后面要么懒,要么就做毕设,最近毕设做的差不多了,又要开始准备做研究生的项目了(虽然确实不多)。\n\n不过前段时间做的一个有意义的事是联系了两个小伙伴,把自己的考研经历分享到了[GitHub](https://github.com/CoderJackZhu/XD-AI-graduate_entrance_exam),三人成绩还行(平均380+),也上岸了,下一篇就分享一下经历。\n\n最近在做毕设论文的修改,同时也学习一下深度学习相关领域的知识,毕竟准研究生了,要学的很多东西可以先准备着了。\n\n\n\n","source":"_posts/今日随笔.md","raw":"---\ntitle: 今日随笔\ndate: 2022/05/10\ntags: 记录生活\ncategories: 生活\nkeywords: 图床、GitHub\ndescription: 进步了\ntop_img: https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/moon.jpg\ncover: https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/moon.jpg\ncomments: true\ntoc:\ntoc_number:\ncopyright:\ncopyright_author: Jack Zhu\ncopyright_author_href: \ncopyright_url: http://jackzhu.top/\ncopyright_info:\nmathjax:\nkatex:\naplayer:\nhighlight_shrink:\naside:\n---\n\n# 我终于把图床修好了\n\n之前gitee的图床用不了,因此这段时间博客都一片404(其实本来也影响不大,毕竟也没几篇博客),今天总算抽出时间修一下,虽然不是什么特别麻烦的事,就是懒。之前的图还真是手动一个一个传的,效率太低,现在用了typora+picgo+github,总算是能用了,方便了不少,希望以后会多更新下吧。之前说的要把大作业都传上去,也能方便后面的学弟学妹,但是后面要么懒,要么就做毕设,最近毕设做的差不多了,又要开始准备做研究生的项目了(虽然确实不多)。\n\n不过前段时间做的一个有意义的事是联系了两个小伙伴,把自己的考研经历分享到了[GitHub](https://github.com/CoderJackZhu/XD-AI-graduate_entrance_exam),三人成绩还行(平均380+),也上岸了,下一篇就分享一下经历。\n\n最近在做毕设论文的修改,同时也学习一下深度学习相关领域的知识,毕竟准研究生了,要学的很多东西可以先准备着了。\n\n\n\n","slug":"今日随笔","published":1,"updated":"2023-03-23T13:47:53.211Z","layout":"post","photos":[],"link":"","_id":"clta6l3uy00093svxc3s14ua1","content":"<h1 id=\"我终于把图床修好了\"><a href=\"#我终于把图床修好了\" class=\"headerlink\" title=\"我终于把图床修好了\"></a>我终于把图床修好了</h1><p>之前gitee的图床用不了,因此这段时间博客都一片404(其实本来也影响不大,毕竟也没几篇博客),今天总算抽出时间修一下,虽然不是什么特别麻烦的事,就是懒。之前的图还真是手动一个一个传的,效率太低,现在用了typora+picgo+github,总算是能用了,方便了不少,希望以后会多更新下吧。之前说的要把大作业都传上去,也能方便后面的学弟学妹,但是后面要么懒,要么就做毕设,最近毕设做的差不多了,又要开始准备做研究生的项目了(虽然确实不多)。</p>\n<p>不过前段时间做的一个有意义的事是联系了两个小伙伴,把自己的考研经历分享到了<a href=\"https://github.com/CoderJackZhu/XD-AI-graduate_entrance_exam\">GitHub</a>,三人成绩还行(平均380+),也上岸了,下一篇就分享一下经历。</p>\n<p>最近在做毕设论文的修改,同时也学习一下深度学习相关领域的知识,毕竟准研究生了,要学的很多东西可以先准备着了。</p>\n","site":{"data":{"link":[{"class_name":"友情链接","class_desc":"那些人,那些事","link_list":[{"name":"冉崇治","link":"http://resetran.top/","avatar":"https://gcore.jsdelivr.net/gh/ranchongzhi/ranchongzhi.github.io@master/medias/logo.png","descr":"王者打野贼溜的NeRF研究者"},{"name":"六个骨头","link":"http://www.bone6.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/zhan.jpg","descr":"飞桨开发者专家"},{"name":"Evan CHEN","link":"https://lhchen.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/_8RG~~1E221F8I(K2FUV4KJ.bmp","descr":"保研清深的图表示学习、语音驱动生成大牛"},{"name":"BB酱","link":"https://www.bbbbchan.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/bb.jpg","descr":"南开大学分割领域强者"},{"name":"sund","link":"http://www.sund-xys.cn/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/sund.jpg","descr":"西交网络&无线&侧信道大爹"},{"name":"冯玉龙","link":"http://bestxinyu.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/feng.jpg","descr":"又一个大佬"},{"name":"西电浪潮俱乐部","link":"http://www.xdu-inspur.club/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/inspur.jpg","descr":"在西电的技术性交流社团"}]},{"class_name":"网站","class_desc":"值得推荐的网站","link_list":[{"name":"跟李沐学AI的入门课","link":"https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/20221004001647.png","descr":"视频网站"},{"name":"OpenMMLab","link":"https://openmmlab.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/httpsi.loli.net202005145VyHPQqR6LWF39a.png.png","descr":"比较综合性的AI框架"}]}]}},"excerpt":"","more":"<h1 id=\"我终于把图床修好了\"><a href=\"#我终于把图床修好了\" class=\"headerlink\" title=\"我终于把图床修好了\"></a>我终于把图床修好了</h1><p>之前gitee的图床用不了,因此这段时间博客都一片404(其实本来也影响不大,毕竟也没几篇博客),今天总算抽出时间修一下,虽然不是什么特别麻烦的事,就是懒。之前的图还真是手动一个一个传的,效率太低,现在用了typora+picgo+github,总算是能用了,方便了不少,希望以后会多更新下吧。之前说的要把大作业都传上去,也能方便后面的学弟学妹,但是后面要么懒,要么就做毕设,最近毕设做的差不多了,又要开始准备做研究生的项目了(虽然确实不多)。</p>\n<p>不过前段时间做的一个有意义的事是联系了两个小伙伴,把自己的考研经历分享到了<a href=\"https://github.com/CoderJackZhu/XD-AI-graduate_entrance_exam\">GitHub</a>,三人成绩还行(平均380+),也上岸了,下一篇就分享一下经历。</p>\n<p>最近在做毕设论文的修改,同时也学习一下深度学习相关领域的知识,毕竟准研究生了,要学的很多东西可以先准备着了。</p>\n"},{"title":"ActionFormer论文分享","date":"2022-11-09T18:01:37.000Z","keywords":"ActionFormer、视频理解、时序定位","description":"之前读的论文","top_img":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/hyy.jpg","comments":1,"cover":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/hyy.jpg","toc":null,"toc_number":null,"copyright":null,"copyright_author":"Jack Zhu","copyright_author_href":null,"copyright_url":"http://jackzhu.top/","copyright_info":null,"mathjax":true,"katex":null,"aplayer":null,"highlight_shrink":null,"aside":null,"_content":"# ActionFormer论文分享\n\n由于水平有限,讲的内容也可能会出现不是很正确的地方,欢迎大家批评指正,沟通交流。今天给大家分享的是之前做过的项目中使用到的一个模型,这个模型在时序定位中取得了非常好的效果,这是Papers with Code上在THUMOS14数据集上的结果,当后面几名还是相差一个点的时候,已经比第二名领先了十多个点,因此我拿来分享一下这个模型,讲一下关于模型的结构以及使用感受。\n\n## ActionFormer在THUMOS‘14效果\n\n\n\n## 视频领域常用的数据集\n\n**THUMOS14:**数据集包含大量的人类动作在真实环境中开源视频。 动作包括日常生活动作。THUMOS14的主要挑战是动作实例持续时间的巨大变化。具体来说,短动作实例只能持续十分之一秒,而长动作实例可以持续数百秒。\n\n**ActivityNet :**是目前视频动作分析方向最大的数据集,包含分类和检测两个任务。目前的1.3版本有200个类别,涵盖了200种不同的日常活动。\n\n**EPIC Kitchens 100:**记录了多个多角度、无脚本、本地环境中的厨房场景。它们均来自拍摄者真实的日常饮食生活,并且使用了一种新颖的实时音频评论方法来收集注释。\n\n## 时序定位任务\n\n动作识别可以看作是一个纯分类问题,其中要识别的视频基本上已经过剪辑,即每个视频包含一段明确的动作,视频时长较短,且有唯一确定的动作类别。而在时序动作定位领域,视频通常没有被剪辑,视频时长较长,动作通常只发生在视频中的一小段时间内,视频可能包含多个动作,也可能不包含动作,即为背景。找到视频中动作的起始和结束,很多时候还需要找出其中动作属于哪一类。这一任务类似于时间上的目标检测,因此很多目标检测中的方法也常常拿来应用在这一领域,比如Faster-RCNN中两阶段的思想,先找到候选区域,再筛选,回归修正。有基于滑窗的方法,基于候选区域的方法。而本次讲的ActionFormer则是单阶段无锚框的方法,如图中所示,直接通过Transformer模型预测出每一刻的动作类别和他们这一时间点到动作开始和结束的距离。\n\n## ActionFormer模型结构\n\n\n\n这一模型使用分类分数以及回归分数来计算出动作的情况,分类的分数用于对动作进行分类,回归的分数用于回归出动作的开始和结束的时间点,这个过程就有点像目标检测,事实上,时序定位的很多方法都是从目标检测中借鉴过来的,这里的分类和回归也就像目标检测中找到锚框中目标的类别和对锚框体的回归,不过时序定位的这个任务是在时间上一维的。\n\n### 总体结构、输入输出\n\n模型的输入是首先对视频经过特征提取,根据视频的长度处理成很多个向量,随后把特征向量送入网络,网络的开始是使用卷积进行映射,随后是一个Transformer结构作为编码器,经过这个结构之后,使用了一个轻量级的卷积进行解码,最后使用分类和回归头得到每个时刻的预测类别,开始和结束,最后通过转化变成预测的结果。\n\n在送入模型训练的时候,只有特征向量是不行的,还是需要一些信息的,比如训练的时候就需要标注信息,片段的起始和末尾,所属的类型,划分为训练还是测试,视频的持续时间和fps帧率信息,在测试的时候不需要标注信息,但是关于视频的帧率和持续时间这些信息还是需要的。\n\n对于模型的输出,我们需要的是一段时间的开始时刻,结束时刻以及对应的分类,因此问题可以转化为\n\n对于时间上的每一个时刻,预测出$p(a_t),d^s_t,d^e_t$,其中$p(a_t)$包含C个值,随后使用以下的公式来求出该时刻预测的结果\n\n\n\n具体的结构可以划分为以下几个部分:\n\n- **特征提取**\n\n- **使用卷积进行映射**\n\n- **Transformer编码器**\n\n- **卷积网络解码**\n\n- **分类和回归头**\n\n- **损失计算**\n\n接下来我讲详细讲这几个部分。\n\n\n\n### 特征提取\n\n特征提取是视频领域常用的操作,因为视频相比图片来说信息量更大,而且视频中存在着非常多的信息冗余,如果直接把视频放入网络,计算量也会很高,因此很多任务会使用特征提取后的特征进行处理。\n\n使用预训练好的模型进行特征提取,一般常用双流I3D进行特征提取,双流I3D模型是视频领域中经典的模型,一路使用RGB信息建模空间信息,一路采用光流信息建模时间变化信息。预训练一般使用Kinetics-400这样的大型数据集,提取出1024*帧数的矩阵,向量和视频的帧具有时间上的对应关系,不过经过实验,其他模型如R(2+1)D、TSN等模型也可以,效果差不多。这里提取特征的时候,一般是采用一个特征向量对应16帧,然后每次向后移动1帧的这种形式,具体参数根据需要进行更改,这种得到的特征向量个数其实是总帧数-16,不过这点差别是不影响结果的。\n\n### 用卷积进行映射\n\n使用这一操作,论文中说有助于更好地结合时间序列数据的本地上下文,对于这一点,我的理解是卷积操作使得可以更好的捕捉到相邻时间前后的信息。\n\n另一点是稳定视觉Transformer的训练,这一点怎么体现的具体论文也没说,我也不是很清楚。\n\n### 多尺度Transformer进行编码\n\n把$Z_0$进行特征表示,乘以一个W\n$$\nQ=Z^0W_Q, K=Z^0W_K, V=Z^0W_V\n$$\n自注意力输出,这里就是一般Transformer的这种方式,计算一个余弦相似度,然后进行缩放,进行softmax操作,最后和Value相乘得到结果。\n$$\nS=softmax(QK^T/\\sqrt(D_q))V\n$$\n使用Transfomer的时候这里是通过使用可选的下采样构建特征池化金字塔,从而更好的关注到时间上不同距离的影响。\n\n作者在后续的消融实验中证明了使用Transformer结构是取得好的效果最重要的原因。\n\n在编码的时候作者也考虑使用位置编码,但是发现加上之后效果会更差,因此默认是没有使用的\n\n### 使用卷积网络进行解码\n\n对于使用卷积网络进行解码这一步骤中,这里使用的是带有分类和回归头的轻量级卷积网络。分类头检查特征金字塔上所有 L 层的每个时刻 t,并预测每个时刻 t 的动作概率 p(at)。分类网络是使用 3 层 1D 卷积实现的。回归头也检查金字塔上所有 L 级的每一时刻 t。不同之处在于,仅当当前时间步 t 位于某个动作中时,回归头才预测到动作开始和偏移的距离。除此之外,在后处理环节还使用了非极大值抑制(nms)操作,把多余的预测消除掉。\n\n### 损失计算\n\n在损失计算这部分,使用了分类损失和回归损失,仅当预测的分类不是背景的情况下计算回归损失,相应的还设置了权重。\n\n\n\n## 模型缺点与改进方向\n\n### 缺点\n\n- 最大的问题应该还是在于使用预提取的视频特征,不是端到端的模型,从实际使用来说,特征提取花的时间远大于实际的代码训练与推理,在项目应用中,一个几秒的视频特征提取在1060上需要6秒左右,而模型推理只需要0.02秒,这一问题在应用时感知非常明显。\n\n- 另一问题应该还是使用了大量有标注的信息,而这一信息不易获取而且成本很高。\n\n- 文中还提到了一个问题在于存在预定义动作词汇的约束。\n\n### 改进方向\n\n- 我觉得一个问题在于可以通过可学习的前处理操作替代特征提取的操作,特征提取这一步骤使用的预训练好的模型,在使用的时候是不计算梯度,更新参数的。最近我读了一篇视频领域标注的论文SWINBERT,感觉其中的思想可以参考一些,该模型的前面使用了Video Swin Transformer模型,后面使用了稀疏注意力,而且模型对于帧率是自适应的,不需要再指定视频的帧率信息,这一思路或许可以应用在这一领域。\n\n- 另一个问题在于这种方法还是有监督学习,需要使用大量人工标记的视频样本进行学习还有预定义的动作词汇的约束,未来可以从预训练方面还有半监督无监督学习等方向改进,在没有人工标签的情况下从视频和文本语料库中学习。\n- 还有一点作者认为目前还缺乏时序动作定位领域的预训练。目前在很多领域都有很大的数据集预训练,随后微调都能取得不错的效果,而在这一领域目前还缺乏。\n\n## 使用感受\n\n- 该模型不仅可以预测有开始和结束帧的情况,还可以把开始帧设为0,仅预测结束帧作为关键帧,经过实验发现这样的方法使用起来也没问题,也能取得很好的效果。\n\n- 在项目中,使用该模型效果确实非常好,而且足够轻量级就可以完成一定要求的任务,训练推理都很快。\n\n- 在不调参的情况下,使用其他数据集的参数配置效果就很好。\n\n- 经过实验,在小规模数据集上表现良好。\n\n- 额外增加了特征提取的操作,增加了使用的复杂度,使用起来需要组合,考虑更多的问题。\n\n总而言之,这一模型在时序动作定位领域这一较为小众的方向中取得了不错的成绩,如果是相关方向的值得一看。\n","source":"_posts/学术交流分享ActionFormer.md","raw":"---\ntitle: ActionFormer论文分享\ndate: 2022-11-09 18:01:37\ntags: ActionFormer\ncategories: 时序定位\nkeywords: ActionFormer、视频理解、时序定位\ndescription: 之前读的论文\ntop_img: https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/hyy.jpg\ncomments: true\ncover: https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/hyy.jpg\ntoc:\ntoc_number:\ncopyright:\ncopyright_author: Jack Zhu\ncopyright_author_href: \ncopyright_url: http://jackzhu.top/\ncopyright_info:\nmathjax: True\nkatex:\naplayer:\nhighlight_shrink:\naside:\n---\n# ActionFormer论文分享\n\n由于水平有限,讲的内容也可能会出现不是很正确的地方,欢迎大家批评指正,沟通交流。今天给大家分享的是之前做过的项目中使用到的一个模型,这个模型在时序定位中取得了非常好的效果,这是Papers with Code上在THUMOS14数据集上的结果,当后面几名还是相差一个点的时候,已经比第二名领先了十多个点,因此我拿来分享一下这个模型,讲一下关于模型的结构以及使用感受。\n\n## ActionFormer在THUMOS‘14效果\n\n\n\n## 视频领域常用的数据集\n\n**THUMOS14:**数据集包含大量的人类动作在真实环境中开源视频。 动作包括日常生活动作。THUMOS14的主要挑战是动作实例持续时间的巨大变化。具体来说,短动作实例只能持续十分之一秒,而长动作实例可以持续数百秒。\n\n**ActivityNet :**是目前视频动作分析方向最大的数据集,包含分类和检测两个任务。目前的1.3版本有200个类别,涵盖了200种不同的日常活动。\n\n**EPIC Kitchens 100:**记录了多个多角度、无脚本、本地环境中的厨房场景。它们均来自拍摄者真实的日常饮食生活,并且使用了一种新颖的实时音频评论方法来收集注释。\n\n## 时序定位任务\n\n动作识别可以看作是一个纯分类问题,其中要识别的视频基本上已经过剪辑,即每个视频包含一段明确的动作,视频时长较短,且有唯一确定的动作类别。而在时序动作定位领域,视频通常没有被剪辑,视频时长较长,动作通常只发生在视频中的一小段时间内,视频可能包含多个动作,也可能不包含动作,即为背景。找到视频中动作的起始和结束,很多时候还需要找出其中动作属于哪一类。这一任务类似于时间上的目标检测,因此很多目标检测中的方法也常常拿来应用在这一领域,比如Faster-RCNN中两阶段的思想,先找到候选区域,再筛选,回归修正。有基于滑窗的方法,基于候选区域的方法。而本次讲的ActionFormer则是单阶段无锚框的方法,如图中所示,直接通过Transformer模型预测出每一刻的动作类别和他们这一时间点到动作开始和结束的距离。\n\n## ActionFormer模型结构\n\n\n\n这一模型使用分类分数以及回归分数来计算出动作的情况,分类的分数用于对动作进行分类,回归的分数用于回归出动作的开始和结束的时间点,这个过程就有点像目标检测,事实上,时序定位的很多方法都是从目标检测中借鉴过来的,这里的分类和回归也就像目标检测中找到锚框中目标的类别和对锚框体的回归,不过时序定位的这个任务是在时间上一维的。\n\n### 总体结构、输入输出\n\n模型的输入是首先对视频经过特征提取,根据视频的长度处理成很多个向量,随后把特征向量送入网络,网络的开始是使用卷积进行映射,随后是一个Transformer结构作为编码器,经过这个结构之后,使用了一个轻量级的卷积进行解码,最后使用分类和回归头得到每个时刻的预测类别,开始和结束,最后通过转化变成预测的结果。\n\n在送入模型训练的时候,只有特征向量是不行的,还是需要一些信息的,比如训练的时候就需要标注信息,片段的起始和末尾,所属的类型,划分为训练还是测试,视频的持续时间和fps帧率信息,在测试的时候不需要标注信息,但是关于视频的帧率和持续时间这些信息还是需要的。\n\n对于模型的输出,我们需要的是一段时间的开始时刻,结束时刻以及对应的分类,因此问题可以转化为\n\n对于时间上的每一个时刻,预测出$p(a_t),d^s_t,d^e_t$,其中$p(a_t)$包含C个值,随后使用以下的公式来求出该时刻预测的结果\n\n\n\n具体的结构可以划分为以下几个部分:\n\n- **特征提取**\n\n- **使用卷积进行映射**\n\n- **Transformer编码器**\n\n- **卷积网络解码**\n\n- **分类和回归头**\n\n- **损失计算**\n\n接下来我讲详细讲这几个部分。\n\n\n\n### 特征提取\n\n特征提取是视频领域常用的操作,因为视频相比图片来说信息量更大,而且视频中存在着非常多的信息冗余,如果直接把视频放入网络,计算量也会很高,因此很多任务会使用特征提取后的特征进行处理。\n\n使用预训练好的模型进行特征提取,一般常用双流I3D进行特征提取,双流I3D模型是视频领域中经典的模型,一路使用RGB信息建模空间信息,一路采用光流信息建模时间变化信息。预训练一般使用Kinetics-400这样的大型数据集,提取出1024*帧数的矩阵,向量和视频的帧具有时间上的对应关系,不过经过实验,其他模型如R(2+1)D、TSN等模型也可以,效果差不多。这里提取特征的时候,一般是采用一个特征向量对应16帧,然后每次向后移动1帧的这种形式,具体参数根据需要进行更改,这种得到的特征向量个数其实是总帧数-16,不过这点差别是不影响结果的。\n\n### 用卷积进行映射\n\n使用这一操作,论文中说有助于更好地结合时间序列数据的本地上下文,对于这一点,我的理解是卷积操作使得可以更好的捕捉到相邻时间前后的信息。\n\n另一点是稳定视觉Transformer的训练,这一点怎么体现的具体论文也没说,我也不是很清楚。\n\n### 多尺度Transformer进行编码\n\n把$Z_0$进行特征表示,乘以一个W\n$$\nQ=Z^0W_Q, K=Z^0W_K, V=Z^0W_V\n$$\n自注意力输出,这里就是一般Transformer的这种方式,计算一个余弦相似度,然后进行缩放,进行softmax操作,最后和Value相乘得到结果。\n$$\nS=softmax(QK^T/\\sqrt(D_q))V\n$$\n使用Transfomer的时候这里是通过使用可选的下采样构建特征池化金字塔,从而更好的关注到时间上不同距离的影响。\n\n作者在后续的消融实验中证明了使用Transformer结构是取得好的效果最重要的原因。\n\n在编码的时候作者也考虑使用位置编码,但是发现加上之后效果会更差,因此默认是没有使用的\n\n### 使用卷积网络进行解码\n\n对于使用卷积网络进行解码这一步骤中,这里使用的是带有分类和回归头的轻量级卷积网络。分类头检查特征金字塔上所有 L 层的每个时刻 t,并预测每个时刻 t 的动作概率 p(at)。分类网络是使用 3 层 1D 卷积实现的。回归头也检查金字塔上所有 L 级的每一时刻 t。不同之处在于,仅当当前时间步 t 位于某个动作中时,回归头才预测到动作开始和偏移的距离。除此之外,在后处理环节还使用了非极大值抑制(nms)操作,把多余的预测消除掉。\n\n### 损失计算\n\n在损失计算这部分,使用了分类损失和回归损失,仅当预测的分类不是背景的情况下计算回归损失,相应的还设置了权重。\n\n\n\n## 模型缺点与改进方向\n\n### 缺点\n\n- 最大的问题应该还是在于使用预提取的视频特征,不是端到端的模型,从实际使用来说,特征提取花的时间远大于实际的代码训练与推理,在项目应用中,一个几秒的视频特征提取在1060上需要6秒左右,而模型推理只需要0.02秒,这一问题在应用时感知非常明显。\n\n- 另一问题应该还是使用了大量有标注的信息,而这一信息不易获取而且成本很高。\n\n- 文中还提到了一个问题在于存在预定义动作词汇的约束。\n\n### 改进方向\n\n- 我觉得一个问题在于可以通过可学习的前处理操作替代特征提取的操作,特征提取这一步骤使用的预训练好的模型,在使用的时候是不计算梯度,更新参数的。最近我读了一篇视频领域标注的论文SWINBERT,感觉其中的思想可以参考一些,该模型的前面使用了Video Swin Transformer模型,后面使用了稀疏注意力,而且模型对于帧率是自适应的,不需要再指定视频的帧率信息,这一思路或许可以应用在这一领域。\n\n- 另一个问题在于这种方法还是有监督学习,需要使用大量人工标记的视频样本进行学习还有预定义的动作词汇的约束,未来可以从预训练方面还有半监督无监督学习等方向改进,在没有人工标签的情况下从视频和文本语料库中学习。\n- 还有一点作者认为目前还缺乏时序动作定位领域的预训练。目前在很多领域都有很大的数据集预训练,随后微调都能取得不错的效果,而在这一领域目前还缺乏。\n\n## 使用感受\n\n- 该模型不仅可以预测有开始和结束帧的情况,还可以把开始帧设为0,仅预测结束帧作为关键帧,经过实验发现这样的方法使用起来也没问题,也能取得很好的效果。\n\n- 在项目中,使用该模型效果确实非常好,而且足够轻量级就可以完成一定要求的任务,训练推理都很快。\n\n- 在不调参的情况下,使用其他数据集的参数配置效果就很好。\n\n- 经过实验,在小规模数据集上表现良好。\n\n- 额外增加了特征提取的操作,增加了使用的复杂度,使用起来需要组合,考虑更多的问题。\n\n总而言之,这一模型在时序动作定位领域这一较为小众的方向中取得了不错的成绩,如果是相关方向的值得一看。\n","slug":"学术交流分享ActionFormer","published":1,"updated":"2023-03-23T13:47:53.212Z","layout":"post","photos":[],"link":"","_id":"clta6l3v8000s3svxegdebj03","content":"<h1 id=\"ActionFormer论文分享\"><a href=\"#ActionFormer论文分享\" class=\"headerlink\" title=\"ActionFormer论文分享\"></a>ActionFormer论文分享</h1><p>由于水平有限,讲的内容也可能会出现不是很正确的地方,欢迎大家批评指正,沟通交流。今天给大家分享的是之前做过的项目中使用到的一个模型,这个模型在时序定位中取得了非常好的效果,这是Papers with Code上在THUMOS14数据集上的结果,当后面几名还是相差一个点的时候,已经比第二名领先了十多个点,因此我拿来分享一下这个模型,讲一下关于模型的结构以及使用感受。</p>\n<h2 id=\"ActionFormer在THUMOS‘14效果\"><a href=\"#ActionFormer在THUMOS‘14效果\" class=\"headerlink\" title=\"ActionFormer在THUMOS‘14效果\"></a>ActionFormer在THUMOS‘14效果</h2><p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/tal_pwc.png\" alt=\"image-20221106153056010\"></p>\n<h2 id=\"视频领域常用的数据集\"><a href=\"#视频领域常用的数据集\" class=\"headerlink\" title=\"视频领域常用的数据集\"></a>视频领域常用的数据集</h2><p><strong>THUMOS14:</strong>数据集包含大量的人类动作在真实环境中开源视频。 动作包括日常生活动作。THUMOS14的主要挑战是动作实例持续时间的巨大变化。具体来说,短动作实例只能持续十分之一秒,而长动作实例可以持续数百秒。</p>\n<p><strong>ActivityNet :</strong>是目前视频动作分析方向最大的数据集,包含分类和检测两个任务。目前的1.3版本有200个类别,涵盖了200种不同的日常活动。</p>\n<p><strong>EPIC Kitchens 100:</strong>记录了多个多角度、无脚本、本地环境中的厨房场景。它们均来自拍摄者真实的日常饮食生活,并且使用了一种新颖的实时音频评论方法来收集注释。</p>\n<h2 id=\"时序定位任务\"><a href=\"#时序定位任务\" class=\"headerlink\" title=\"时序定位任务\"></a>时序定位任务</h2><p>动作识别可以看作是一个纯分类问题,其中要识别的视频基本上已经过剪辑,即每个视频包含一段明确的动作,视频时长较短,且有唯一确定的动作类别。而在时序动作定位领域,视频通常没有被剪辑,视频时长较长,动作通常只发生在视频中的一小段时间内,视频可能包含多个动作,也可能不包含动作,即为背景。找到视频中动作的起始和结束,很多时候还需要找出其中动作属于哪一类。这一任务类似于时间上的目标检测,因此很多目标检测中的方法也常常拿来应用在这一领域,比如Faster-RCNN中两阶段的思想,先找到候选区域,再筛选,回归修正。有基于滑窗的方法,基于候选区域的方法。而本次讲的ActionFormer则是单阶段无锚框的方法,如图中所示,直接通过Transformer模型预测出每一刻的动作类别和他们这一时间点到动作开始和结束的距离。</p>\n<h2 id=\"ActionFormer模型结构\"><a href=\"#ActionFormer模型结构\" class=\"headerlink\" title=\"ActionFormer模型结构\"></a>ActionFormer模型结构</h2><p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/base_ActionFormer.png\" alt=\"image-20221106155642020\"></p>\n<p>这一模型使用分类分数以及回归分数来计算出动作的情况,分类的分数用于对动作进行分类,回归的分数用于回归出动作的开始和结束的时间点,这个过程就有点像目标检测,事实上,时序定位的很多方法都是从目标检测中借鉴过来的,这里的分类和回归也就像目标检测中找到锚框中目标的类别和对锚框体的回归,不过时序定位的这个任务是在时间上一维的。</p>\n<h3 id=\"总体结构、输入输出\"><a href=\"#总体结构、输入输出\" class=\"headerlink\" title=\"总体结构、输入输出\"></a>总体结构、输入输出</h3><p>模型的输入是首先对视频经过特征提取,根据视频的长度处理成很多个向量,随后把特征向量送入网络,网络的开始是使用卷积进行映射,随后是一个Transformer结构作为编码器,经过这个结构之后,使用了一个轻量级的卷积进行解码,最后使用分类和回归头得到每个时刻的预测类别,开始和结束,最后通过转化变成预测的结果。</p>\n<p>在送入模型训练的时候,只有特征向量是不行的,还是需要一些信息的,比如训练的时候就需要标注信息,片段的起始和末尾,所属的类型,划分为训练还是测试,视频的持续时间和fps帧率信息,在测试的时候不需要标注信息,但是关于视频的帧率和持续时间这些信息还是需要的。</p>\n<p>对于模型的输出,我们需要的是一段时间的开始时刻,结束时刻以及对应的分类,因此问题可以转化为</p>\n<p>对于时间上的每一个时刻,预测出$p(a_t),d^s_t,d^e_t$,其中$p(a_t)$包含C个值,随后使用以下的公式来求出该时刻预测的结果</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/tal_input.png\" alt=\"image-20221106155554231\"></p>\n<p>具体的结构可以划分为以下几个部分:</p>\n<ul>\n<li><p><strong>特征提取</strong></p>\n</li>\n<li><p><strong>使用卷积进行映射</strong></p>\n</li>\n<li><p><strong>Transformer编码器</strong></p>\n</li>\n<li><p><strong>卷积网络解码</strong></p>\n</li>\n<li><p><strong>分类和回归头</strong></p>\n</li>\n<li><p><strong>损失计算</strong></p>\n</li>\n</ul>\n<p>接下来我讲详细讲这几个部分。</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/action_structure.png\" alt=\"image-20221106160221382\"></p>\n<h3 id=\"特征提取\"><a href=\"#特征提取\" class=\"headerlink\" title=\"特征提取\"></a>特征提取</h3><p>特征提取是视频领域常用的操作,因为视频相比图片来说信息量更大,而且视频中存在着非常多的信息冗余,如果直接把视频放入网络,计算量也会很高,因此很多任务会使用特征提取后的特征进行处理。</p>\n<p>使用预训练好的模型进行特征提取,一般常用双流I3D进行特征提取,双流I3D模型是视频领域中经典的模型,一路使用RGB信息建模空间信息,一路采用光流信息建模时间变化信息。预训练一般使用Kinetics-400这样的大型数据集,提取出1024*帧数的矩阵,向量和视频的帧具有时间上的对应关系,不过经过实验,其他模型如R(2+1)D、TSN等模型也可以,效果差不多。这里提取特征的时候,一般是采用一个特征向量对应16帧,然后每次向后移动1帧的这种形式,具体参数根据需要进行更改,这种得到的特征向量个数其实是总帧数-16,不过这点差别是不影响结果的。</p>\n<h3 id=\"用卷积进行映射\"><a href=\"#用卷积进行映射\" class=\"headerlink\" title=\"用卷积进行映射\"></a>用卷积进行映射</h3><p>使用这一操作,论文中说有助于更好地结合时间序列数据的本地上下文,对于这一点,我的理解是卷积操作使得可以更好的捕捉到相邻时间前后的信息。</p>\n<p>另一点是稳定视觉Transformer的训练,这一点怎么体现的具体论文也没说,我也不是很清楚。</p>\n<h3 id=\"多尺度Transformer进行编码\"><a href=\"#多尺度Transformer进行编码\" class=\"headerlink\" title=\"多尺度Transformer进行编码\"></a>多尺度Transformer进行编码</h3><p>把$Z_0$进行特征表示,乘以一个W<br>$$<br>Q=Z^0W_Q, K=Z^0W_K, V=Z^0W_V<br>$$<br>自注意力输出,这里就是一般Transformer的这种方式,计算一个余弦相似度,然后进行缩放,进行softmax操作,最后和Value相乘得到结果。<br>$$<br>S=softmax(QK^T/\\sqrt(D_q))V<br>$$<br>使用Transfomer的时候这里是通过使用可选的下采样构建特征池化金字塔,从而更好的关注到时间上不同距离的影响。</p>\n<p>作者在后续的消融实验中证明了使用Transformer结构是取得好的效果最重要的原因。</p>\n<p>在编码的时候作者也考虑使用位置编码,但是发现加上之后效果会更差,因此默认是没有使用的</p>\n<h3 id=\"使用卷积网络进行解码\"><a href=\"#使用卷积网络进行解码\" class=\"headerlink\" title=\"使用卷积网络进行解码\"></a>使用卷积网络进行解码</h3><p>对于使用卷积网络进行解码这一步骤中,这里使用的是带有分类和回归头的轻量级卷积网络。分类头检查特征金字塔上所有 L 层的每个时刻 t,并预测每个时刻 t 的动作概率 p(at)。分类网络是使用 3 层 1D 卷积实现的。回归头也检查金字塔上所有 L 级的每一时刻 t。不同之处在于,仅当当前时间步 t 位于某个动作中时,回归头才预测到动作开始和偏移的距离。除此之外,在后处理环节还使用了非极大值抑制(nms)操作,把多余的预测消除掉。</p>\n<h3 id=\"损失计算\"><a href=\"#损失计算\" class=\"headerlink\" title=\"损失计算\"></a>损失计算</h3><p>在损失计算这部分,使用了分类损失和回归损失,仅当预测的分类不是背景的情况下计算回归损失,相应的还设置了权重。</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/loss_actionformer.png\" alt=\"image-20221106194551616\"></p>\n<h2 id=\"模型缺点与改进方向\"><a href=\"#模型缺点与改进方向\" class=\"headerlink\" title=\"模型缺点与改进方向\"></a>模型缺点与改进方向</h2><h3 id=\"缺点\"><a href=\"#缺点\" class=\"headerlink\" title=\"缺点\"></a>缺点</h3><ul>\n<li><p>最大的问题应该还是在于使用预提取的视频特征,不是端到端的模型,从实际使用来说,特征提取花的时间远大于实际的代码训练与推理,在项目应用中,一个几秒的视频特征提取在1060上需要6秒左右,而模型推理只需要0.02秒,这一问题在应用时感知非常明显。</p>\n</li>\n<li><p>另一问题应该还是使用了大量有标注的信息,而这一信息不易获取而且成本很高。</p>\n</li>\n<li><p>文中还提到了一个问题在于存在预定义动作词汇的约束。</p>\n</li>\n</ul>\n<h3 id=\"改进方向\"><a href=\"#改进方向\" class=\"headerlink\" title=\"改进方向\"></a>改进方向</h3><ul>\n<li><p>我觉得一个问题在于可以通过可学习的前处理操作替代特征提取的操作,特征提取这一步骤使用的预训练好的模型,在使用的时候是不计算梯度,更新参数的。最近我读了一篇视频领域标注的论文SWINBERT,感觉其中的思想可以参考一些,该模型的前面使用了Video Swin Transformer模型,后面使用了稀疏注意力,而且模型对于帧率是自适应的,不需要再指定视频的帧率信息,这一思路或许可以应用在这一领域。</p>\n</li>\n<li><p>另一个问题在于这种方法还是有监督学习,需要使用大量人工标记的视频样本进行学习还有预定义的动作词汇的约束,未来可以从预训练方面还有半监督无监督学习等方向改进,在没有人工标签的情况下从视频和文本语料库中学习。</p>\n</li>\n<li><p>还有一点作者认为目前还缺乏时序动作定位领域的预训练。目前在很多领域都有很大的数据集预训练,随后微调都能取得不错的效果,而在这一领域目前还缺乏。</p>\n</li>\n</ul>\n<h2 id=\"使用感受\"><a href=\"#使用感受\" class=\"headerlink\" title=\"使用感受\"></a>使用感受</h2><ul>\n<li><p>该模型不仅可以预测有开始和结束帧的情况,还可以把开始帧设为0,仅预测结束帧作为关键帧,经过实验发现这样的方法使用起来也没问题,也能取得很好的效果。</p>\n</li>\n<li><p>在项目中,使用该模型效果确实非常好,而且足够轻量级就可以完成一定要求的任务,训练推理都很快。</p>\n</li>\n<li><p>在不调参的情况下,使用其他数据集的参数配置效果就很好。</p>\n</li>\n<li><p>经过实验,在小规模数据集上表现良好。</p>\n</li>\n<li><p>额外增加了特征提取的操作,增加了使用的复杂度,使用起来需要组合,考虑更多的问题。</p>\n</li>\n</ul>\n<p>总而言之,这一模型在时序动作定位领域这一较为小众的方向中取得了不错的成绩,如果是相关方向的值得一看。</p>\n","site":{"data":{"link":[{"class_name":"友情链接","class_desc":"那些人,那些事","link_list":[{"name":"冉崇治","link":"http://resetran.top/","avatar":"https://gcore.jsdelivr.net/gh/ranchongzhi/ranchongzhi.github.io@master/medias/logo.png","descr":"王者打野贼溜的NeRF研究者"},{"name":"六个骨头","link":"http://www.bone6.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/zhan.jpg","descr":"飞桨开发者专家"},{"name":"Evan CHEN","link":"https://lhchen.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/_8RG~~1E221F8I(K2FUV4KJ.bmp","descr":"保研清深的图表示学习、语音驱动生成大牛"},{"name":"BB酱","link":"https://www.bbbbchan.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/bb.jpg","descr":"南开大学分割领域强者"},{"name":"sund","link":"http://www.sund-xys.cn/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/sund.jpg","descr":"西交网络&无线&侧信道大爹"},{"name":"冯玉龙","link":"http://bestxinyu.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/feng.jpg","descr":"又一个大佬"},{"name":"西电浪潮俱乐部","link":"http://www.xdu-inspur.club/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/inspur.jpg","descr":"在西电的技术性交流社团"}]},{"class_name":"网站","class_desc":"值得推荐的网站","link_list":[{"name":"跟李沐学AI的入门课","link":"https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/20221004001647.png","descr":"视频网站"},{"name":"OpenMMLab","link":"https://openmmlab.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/httpsi.loli.net202005145VyHPQqR6LWF39a.png.png","descr":"比较综合性的AI框架"}]}]}},"excerpt":"","more":"<h1 id=\"ActionFormer论文分享\"><a href=\"#ActionFormer论文分享\" class=\"headerlink\" title=\"ActionFormer论文分享\"></a>ActionFormer论文分享</h1><p>由于水平有限,讲的内容也可能会出现不是很正确的地方,欢迎大家批评指正,沟通交流。今天给大家分享的是之前做过的项目中使用到的一个模型,这个模型在时序定位中取得了非常好的效果,这是Papers with Code上在THUMOS14数据集上的结果,当后面几名还是相差一个点的时候,已经比第二名领先了十多个点,因此我拿来分享一下这个模型,讲一下关于模型的结构以及使用感受。</p>\n<h2 id=\"ActionFormer在THUMOS‘14效果\"><a href=\"#ActionFormer在THUMOS‘14效果\" class=\"headerlink\" title=\"ActionFormer在THUMOS‘14效果\"></a>ActionFormer在THUMOS‘14效果</h2><p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/tal_pwc.png\" alt=\"image-20221106153056010\"></p>\n<h2 id=\"视频领域常用的数据集\"><a href=\"#视频领域常用的数据集\" class=\"headerlink\" title=\"视频领域常用的数据集\"></a>视频领域常用的数据集</h2><p><strong>THUMOS14:</strong>数据集包含大量的人类动作在真实环境中开源视频。 动作包括日常生活动作。THUMOS14的主要挑战是动作实例持续时间的巨大变化。具体来说,短动作实例只能持续十分之一秒,而长动作实例可以持续数百秒。</p>\n<p><strong>ActivityNet :</strong>是目前视频动作分析方向最大的数据集,包含分类和检测两个任务。目前的1.3版本有200个类别,涵盖了200种不同的日常活动。</p>\n<p><strong>EPIC Kitchens 100:</strong>记录了多个多角度、无脚本、本地环境中的厨房场景。它们均来自拍摄者真实的日常饮食生活,并且使用了一种新颖的实时音频评论方法来收集注释。</p>\n<h2 id=\"时序定位任务\"><a href=\"#时序定位任务\" class=\"headerlink\" title=\"时序定位任务\"></a>时序定位任务</h2><p>动作识别可以看作是一个纯分类问题,其中要识别的视频基本上已经过剪辑,即每个视频包含一段明确的动作,视频时长较短,且有唯一确定的动作类别。而在时序动作定位领域,视频通常没有被剪辑,视频时长较长,动作通常只发生在视频中的一小段时间内,视频可能包含多个动作,也可能不包含动作,即为背景。找到视频中动作的起始和结束,很多时候还需要找出其中动作属于哪一类。这一任务类似于时间上的目标检测,因此很多目标检测中的方法也常常拿来应用在这一领域,比如Faster-RCNN中两阶段的思想,先找到候选区域,再筛选,回归修正。有基于滑窗的方法,基于候选区域的方法。而本次讲的ActionFormer则是单阶段无锚框的方法,如图中所示,直接通过Transformer模型预测出每一刻的动作类别和他们这一时间点到动作开始和结束的距离。</p>\n<h2 id=\"ActionFormer模型结构\"><a href=\"#ActionFormer模型结构\" class=\"headerlink\" title=\"ActionFormer模型结构\"></a>ActionFormer模型结构</h2><p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/base_ActionFormer.png\" alt=\"image-20221106155642020\"></p>\n<p>这一模型使用分类分数以及回归分数来计算出动作的情况,分类的分数用于对动作进行分类,回归的分数用于回归出动作的开始和结束的时间点,这个过程就有点像目标检测,事实上,时序定位的很多方法都是从目标检测中借鉴过来的,这里的分类和回归也就像目标检测中找到锚框中目标的类别和对锚框体的回归,不过时序定位的这个任务是在时间上一维的。</p>\n<h3 id=\"总体结构、输入输出\"><a href=\"#总体结构、输入输出\" class=\"headerlink\" title=\"总体结构、输入输出\"></a>总体结构、输入输出</h3><p>模型的输入是首先对视频经过特征提取,根据视频的长度处理成很多个向量,随后把特征向量送入网络,网络的开始是使用卷积进行映射,随后是一个Transformer结构作为编码器,经过这个结构之后,使用了一个轻量级的卷积进行解码,最后使用分类和回归头得到每个时刻的预测类别,开始和结束,最后通过转化变成预测的结果。</p>\n<p>在送入模型训练的时候,只有特征向量是不行的,还是需要一些信息的,比如训练的时候就需要标注信息,片段的起始和末尾,所属的类型,划分为训练还是测试,视频的持续时间和fps帧率信息,在测试的时候不需要标注信息,但是关于视频的帧率和持续时间这些信息还是需要的。</p>\n<p>对于模型的输出,我们需要的是一段时间的开始时刻,结束时刻以及对应的分类,因此问题可以转化为</p>\n<p>对于时间上的每一个时刻,预测出$p(a_t),d^s_t,d^e_t$,其中$p(a_t)$包含C个值,随后使用以下的公式来求出该时刻预测的结果</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/tal_input.png\" alt=\"image-20221106155554231\"></p>\n<p>具体的结构可以划分为以下几个部分:</p>\n<ul>\n<li><p><strong>特征提取</strong></p>\n</li>\n<li><p><strong>使用卷积进行映射</strong></p>\n</li>\n<li><p><strong>Transformer编码器</strong></p>\n</li>\n<li><p><strong>卷积网络解码</strong></p>\n</li>\n<li><p><strong>分类和回归头</strong></p>\n</li>\n<li><p><strong>损失计算</strong></p>\n</li>\n</ul>\n<p>接下来我讲详细讲这几个部分。</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/action_structure.png\" alt=\"image-20221106160221382\"></p>\n<h3 id=\"特征提取\"><a href=\"#特征提取\" class=\"headerlink\" title=\"特征提取\"></a>特征提取</h3><p>特征提取是视频领域常用的操作,因为视频相比图片来说信息量更大,而且视频中存在着非常多的信息冗余,如果直接把视频放入网络,计算量也会很高,因此很多任务会使用特征提取后的特征进行处理。</p>\n<p>使用预训练好的模型进行特征提取,一般常用双流I3D进行特征提取,双流I3D模型是视频领域中经典的模型,一路使用RGB信息建模空间信息,一路采用光流信息建模时间变化信息。预训练一般使用Kinetics-400这样的大型数据集,提取出1024*帧数的矩阵,向量和视频的帧具有时间上的对应关系,不过经过实验,其他模型如R(2+1)D、TSN等模型也可以,效果差不多。这里提取特征的时候,一般是采用一个特征向量对应16帧,然后每次向后移动1帧的这种形式,具体参数根据需要进行更改,这种得到的特征向量个数其实是总帧数-16,不过这点差别是不影响结果的。</p>\n<h3 id=\"用卷积进行映射\"><a href=\"#用卷积进行映射\" class=\"headerlink\" title=\"用卷积进行映射\"></a>用卷积进行映射</h3><p>使用这一操作,论文中说有助于更好地结合时间序列数据的本地上下文,对于这一点,我的理解是卷积操作使得可以更好的捕捉到相邻时间前后的信息。</p>\n<p>另一点是稳定视觉Transformer的训练,这一点怎么体现的具体论文也没说,我也不是很清楚。</p>\n<h3 id=\"多尺度Transformer进行编码\"><a href=\"#多尺度Transformer进行编码\" class=\"headerlink\" title=\"多尺度Transformer进行编码\"></a>多尺度Transformer进行编码</h3><p>把$Z_0$进行特征表示,乘以一个W<br>$$<br>Q=Z^0W_Q, K=Z^0W_K, V=Z^0W_V<br>$$<br>自注意力输出,这里就是一般Transformer的这种方式,计算一个余弦相似度,然后进行缩放,进行softmax操作,最后和Value相乘得到结果。<br>$$<br>S=softmax(QK^T/\\sqrt(D_q))V<br>$$<br>使用Transfomer的时候这里是通过使用可选的下采样构建特征池化金字塔,从而更好的关注到时间上不同距离的影响。</p>\n<p>作者在后续的消融实验中证明了使用Transformer结构是取得好的效果最重要的原因。</p>\n<p>在编码的时候作者也考虑使用位置编码,但是发现加上之后效果会更差,因此默认是没有使用的</p>\n<h3 id=\"使用卷积网络进行解码\"><a href=\"#使用卷积网络进行解码\" class=\"headerlink\" title=\"使用卷积网络进行解码\"></a>使用卷积网络进行解码</h3><p>对于使用卷积网络进行解码这一步骤中,这里使用的是带有分类和回归头的轻量级卷积网络。分类头检查特征金字塔上所有 L 层的每个时刻 t,并预测每个时刻 t 的动作概率 p(at)。分类网络是使用 3 层 1D 卷积实现的。回归头也检查金字塔上所有 L 级的每一时刻 t。不同之处在于,仅当当前时间步 t 位于某个动作中时,回归头才预测到动作开始和偏移的距离。除此之外,在后处理环节还使用了非极大值抑制(nms)操作,把多余的预测消除掉。</p>\n<h3 id=\"损失计算\"><a href=\"#损失计算\" class=\"headerlink\" title=\"损失计算\"></a>损失计算</h3><p>在损失计算这部分,使用了分类损失和回归损失,仅当预测的分类不是背景的情况下计算回归损失,相应的还设置了权重。</p>\n<p><img src=\"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/loss_actionformer.png\" alt=\"image-20221106194551616\"></p>\n<h2 id=\"模型缺点与改进方向\"><a href=\"#模型缺点与改进方向\" class=\"headerlink\" title=\"模型缺点与改进方向\"></a>模型缺点与改进方向</h2><h3 id=\"缺点\"><a href=\"#缺点\" class=\"headerlink\" title=\"缺点\"></a>缺点</h3><ul>\n<li><p>最大的问题应该还是在于使用预提取的视频特征,不是端到端的模型,从实际使用来说,特征提取花的时间远大于实际的代码训练与推理,在项目应用中,一个几秒的视频特征提取在1060上需要6秒左右,而模型推理只需要0.02秒,这一问题在应用时感知非常明显。</p>\n</li>\n<li><p>另一问题应该还是使用了大量有标注的信息,而这一信息不易获取而且成本很高。</p>\n</li>\n<li><p>文中还提到了一个问题在于存在预定义动作词汇的约束。</p>\n</li>\n</ul>\n<h3 id=\"改进方向\"><a href=\"#改进方向\" class=\"headerlink\" title=\"改进方向\"></a>改进方向</h3><ul>\n<li><p>我觉得一个问题在于可以通过可学习的前处理操作替代特征提取的操作,特征提取这一步骤使用的预训练好的模型,在使用的时候是不计算梯度,更新参数的。最近我读了一篇视频领域标注的论文SWINBERT,感觉其中的思想可以参考一些,该模型的前面使用了Video Swin Transformer模型,后面使用了稀疏注意力,而且模型对于帧率是自适应的,不需要再指定视频的帧率信息,这一思路或许可以应用在这一领域。</p>\n</li>\n<li><p>另一个问题在于这种方法还是有监督学习,需要使用大量人工标记的视频样本进行学习还有预定义的动作词汇的约束,未来可以从预训练方面还有半监督无监督学习等方向改进,在没有人工标签的情况下从视频和文本语料库中学习。</p>\n</li>\n<li><p>还有一点作者认为目前还缺乏时序动作定位领域的预训练。目前在很多领域都有很大的数据集预训练,随后微调都能取得不错的效果,而在这一领域目前还缺乏。</p>\n</li>\n</ul>\n<h2 id=\"使用感受\"><a href=\"#使用感受\" class=\"headerlink\" title=\"使用感受\"></a>使用感受</h2><ul>\n<li><p>该模型不仅可以预测有开始和结束帧的情况,还可以把开始帧设为0,仅预测结束帧作为关键帧,经过实验发现这样的方法使用起来也没问题,也能取得很好的效果。</p>\n</li>\n<li><p>在项目中,使用该模型效果确实非常好,而且足够轻量级就可以完成一定要求的任务,训练推理都很快。</p>\n</li>\n<li><p>在不调参的情况下,使用其他数据集的参数配置效果就很好。</p>\n</li>\n<li><p>经过实验,在小规模数据集上表现良好。</p>\n</li>\n<li><p>额外增加了特征提取的操作,增加了使用的复杂度,使用起来需要组合,考虑更多的问题。</p>\n</li>\n</ul>\n<p>总而言之,这一模型在时序动作定位领域这一较为小众的方向中取得了不错的成绩,如果是相关方向的值得一看。</p>\n"},{"title":"考研后的思考","date":"2021-12-29T00:08:37.000Z","keywords":"计划","description":"反内卷而不躺平","top_img":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102148023.jpg","comments":1,"cover":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102148023.jpg","toc":null,"toc_number":null,"copyright":null,"copyright_author":"Jack Zhu","copyright_author_href":null,"copyright_url":"http://jackzhu.top/","copyright_info":null,"mathjax":null,"katex":null,"aplayer":null,"highlight_shrink":null,"aside":null,"_content":"\n# 考研后的感想\n\n# 想法\n\n今天是考研后的第二天晚上,考研生活算是过去了,然后就是之后的新生活了,对于之后的安排,目前来看,主线是做毕业设计,在期间可以学习一些东西。我计划近期将之前做过的大作业再复习一遍,然后整理出来,发到博客里,这不是什么大的任务,我打算先从这样的小事做起,慢慢学知识。毕竟,在有目标的情况下很多时候还不一定能一直坚持做事,现在时间比较闲了,能做多少事就比较随缘了。\n\n","source":"_posts/我的生活.md","raw":"---\ntitle: 考研后的思考\ndate: 2021-12-29 00:08:37\ntags: 生活\ncategories: 生活\nkeywords: 计划 \ndescription: 反内卷而不躺平\ntop_img: https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102148023.jpg\ncomments: true\ncover: https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/202205102148023.jpg\ntoc:\ntoc_number:\ncopyright:\ncopyright_author: Jack Zhu\ncopyright_author_href: \ncopyright_url: http://jackzhu.top/\ncopyright_info:\nmathjax:\nkatex:\naplayer:\nhighlight_shrink:\naside:\n---\n\n# 考研后的感想\n\n# 想法\n\n今天是考研后的第二天晚上,考研生活算是过去了,然后就是之后的新生活了,对于之后的安排,目前来看,主线是做毕业设计,在期间可以学习一些东西。我计划近期将之前做过的大作业再复习一遍,然后整理出来,发到博客里,这不是什么大的任务,我打算先从这样的小事做起,慢慢学知识。毕竟,在有目标的情况下很多时候还不一定能一直坚持做事,现在时间比较闲了,能做多少事就比较随缘了。\n\n","slug":"我的生活","published":1,"updated":"2023-03-23T13:47:53.192Z","layout":"post","photos":[],"link":"","_id":"clta6l3v9000t3svxfqv6d58t","content":"<h1 id=\"考研后的感想\"><a href=\"#考研后的感想\" class=\"headerlink\" title=\"考研后的感想\"></a>考研后的感想</h1><h1 id=\"想法\"><a href=\"#想法\" class=\"headerlink\" title=\"想法\"></a>想法</h1><p>今天是考研后的第二天晚上,考研生活算是过去了,然后就是之后的新生活了,对于之后的安排,目前来看,主线是做毕业设计,在期间可以学习一些东西。我计划近期将之前做过的大作业再复习一遍,然后整理出来,发到博客里,这不是什么大的任务,我打算先从这样的小事做起,慢慢学知识。毕竟,在有目标的情况下很多时候还不一定能一直坚持做事,现在时间比较闲了,能做多少事就比较随缘了。</p>\n","site":{"data":{"link":[{"class_name":"友情链接","class_desc":"那些人,那些事","link_list":[{"name":"冉崇治","link":"http://resetran.top/","avatar":"https://gcore.jsdelivr.net/gh/ranchongzhi/ranchongzhi.github.io@master/medias/logo.png","descr":"王者打野贼溜的NeRF研究者"},{"name":"六个骨头","link":"http://www.bone6.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/zhan.jpg","descr":"飞桨开发者专家"},{"name":"Evan CHEN","link":"https://lhchen.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/_8RG~~1E221F8I(K2FUV4KJ.bmp","descr":"保研清深的图表示学习、语音驱动生成大牛"},{"name":"BB酱","link":"https://www.bbbbchan.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/bb.jpg","descr":"南开大学分割领域强者"},{"name":"sund","link":"http://www.sund-xys.cn/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/sund.jpg","descr":"西交网络&无线&侧信道大爹"},{"name":"冯玉龙","link":"http://bestxinyu.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/feng.jpg","descr":"又一个大佬"},{"name":"西电浪潮俱乐部","link":"http://www.xdu-inspur.club/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/inspur.jpg","descr":"在西电的技术性交流社团"}]},{"class_name":"网站","class_desc":"值得推荐的网站","link_list":[{"name":"跟李沐学AI的入门课","link":"https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/20221004001647.png","descr":"视频网站"},{"name":"OpenMMLab","link":"https://openmmlab.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/httpsi.loli.net202005145VyHPQqR6LWF39a.png.png","descr":"比较综合性的AI框架"}]}]}},"excerpt":"","more":"<h1 id=\"考研后的感想\"><a href=\"#考研后的感想\" class=\"headerlink\" title=\"考研后的感想\"></a>考研后的感想</h1><h1 id=\"想法\"><a href=\"#想法\" class=\"headerlink\" title=\"想法\"></a>想法</h1><p>今天是考研后的第二天晚上,考研生活算是过去了,然后就是之后的新生活了,对于之后的安排,目前来看,主线是做毕业设计,在期间可以学习一些东西。我计划近期将之前做过的大作业再复习一遍,然后整理出来,发到博客里,这不是什么大的任务,我打算先从这样的小事做起,慢慢学知识。毕竟,在有目标的情况下很多时候还不一定能一直坚持做事,现在时间比较闲了,能做多少事就比较随缘了。</p>\n"},{"title":"记录我的第一次搭建博客","date":"2020-10-31T00:00:00.000Z","keywords":"各种error","description":"我太难了","top_img":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/xidian1.jpg","cover":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/xidian1.jpg","comments":1,"toc":null,"toc_number":null,"copyright":null,"copyright_author":"Jack Zhu","copyright_author_href":null,"copyright_url":"http://jackzhu.top/","copyright_info":null,"mathjax":null,"katex":null,"aplayer":null,"highlight_shrink":null,"aside":null,"_content":"\n# 艰难的第一次搭博客\n\n其实我在很早之前就想搭博客,大概大一开始的时候,就想着做一些有意义,有兴趣的事,结果一直拖到了现在才开始真正意义上的实践,我也是趁着这次对大一的培训搭建博客,顺便才开始做,看上去不是很难的一件事,实际去做,我却遇到了很多困难,就光配置markdown的front-matter的时候,因为不知道里面还有其他东西,就一直报错,而且和其他一起弄的,我还找不到原因,就导致我花了很大的时间,最后遇到的一个问题是图片的在线存储问题,最后用的码云的仓库来放的,最后头像也解决了,我才能说,我基本才算是搭建成了一个基本的框架。\n哎,之前跟现在相比,其实并不忙的,但也是懒,还有各种找的原因,结果到现在,对这样搭博客的基本知识都还都不太了解,有点小愧疚,以后还是得加把劲了。\n现在还有一堆大作业要去写,剩下的时间也不多了,就先这样吧。","source":"_posts/记录第一次搭博客.md","raw":"---\ntitle: 记录我的第一次搭建博客\ndate: 2020/10/31\ntags: 记录生活\ncategories: 生活\nkeywords: 各种error\ndescription: 我太难了\ntop_img: https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/xidian1.jpg\ncover: https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/xidian1.jpg\ncomments: true\ntoc:\ntoc_number:\ncopyright:\ncopyright_author: Jack Zhu\ncopyright_author_href: \ncopyright_url: http://jackzhu.top/\ncopyright_info:\nmathjax:\nkatex:\naplayer:\nhighlight_shrink:\naside:\n---\n\n# 艰难的第一次搭博客\n\n其实我在很早之前就想搭博客,大概大一开始的时候,就想着做一些有意义,有兴趣的事,结果一直拖到了现在才开始真正意义上的实践,我也是趁着这次对大一的培训搭建博客,顺便才开始做,看上去不是很难的一件事,实际去做,我却遇到了很多困难,就光配置markdown的front-matter的时候,因为不知道里面还有其他东西,就一直报错,而且和其他一起弄的,我还找不到原因,就导致我花了很大的时间,最后遇到的一个问题是图片的在线存储问题,最后用的码云的仓库来放的,最后头像也解决了,我才能说,我基本才算是搭建成了一个基本的框架。\n哎,之前跟现在相比,其实并不忙的,但也是懒,还有各种找的原因,结果到现在,对这样搭博客的基本知识都还都不太了解,有点小愧疚,以后还是得加把劲了。\n现在还有一堆大作业要去写,剩下的时间也不多了,就先这样吧。","slug":"记录第一次搭博客","published":1,"updated":"2023-03-23T13:47:53.213Z","layout":"post","photos":[],"link":"","_id":"clta6l3v9000w3svxdsh7a7yz","content":"<h1 id=\"艰难的第一次搭博客\"><a href=\"#艰难的第一次搭博客\" class=\"headerlink\" title=\"艰难的第一次搭博客\"></a>艰难的第一次搭博客</h1><p>其实我在很早之前就想搭博客,大概大一开始的时候,就想着做一些有意义,有兴趣的事,结果一直拖到了现在才开始真正意义上的实践,我也是趁着这次对大一的培训搭建博客,顺便才开始做,看上去不是很难的一件事,实际去做,我却遇到了很多困难,就光配置markdown的front-matter的时候,因为不知道里面还有其他东西,就一直报错,而且和其他一起弄的,我还找不到原因,就导致我花了很大的时间,最后遇到的一个问题是图片的在线存储问题,最后用的码云的仓库来放的,最后头像也解决了,我才能说,我基本才算是搭建成了一个基本的框架。<br>哎,之前跟现在相比,其实并不忙的,但也是懒,还有各种找的原因,结果到现在,对这样搭博客的基本知识都还都不太了解,有点小愧疚,以后还是得加把劲了。<br>现在还有一堆大作业要去写,剩下的时间也不多了,就先这样吧。</p>\n","site":{"data":{"link":[{"class_name":"友情链接","class_desc":"那些人,那些事","link_list":[{"name":"冉崇治","link":"http://resetran.top/","avatar":"https://gcore.jsdelivr.net/gh/ranchongzhi/ranchongzhi.github.io@master/medias/logo.png","descr":"王者打野贼溜的NeRF研究者"},{"name":"六个骨头","link":"http://www.bone6.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/zhan.jpg","descr":"飞桨开发者专家"},{"name":"Evan CHEN","link":"https://lhchen.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/_8RG~~1E221F8I(K2FUV4KJ.bmp","descr":"保研清深的图表示学习、语音驱动生成大牛"},{"name":"BB酱","link":"https://www.bbbbchan.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/bb.jpg","descr":"南开大学分割领域强者"},{"name":"sund","link":"http://www.sund-xys.cn/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/sund.jpg","descr":"西交网络&无线&侧信道大爹"},{"name":"冯玉龙","link":"http://bestxinyu.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/feng.jpg","descr":"又一个大佬"},{"name":"西电浪潮俱乐部","link":"http://www.xdu-inspur.club/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/inspur.jpg","descr":"在西电的技术性交流社团"}]},{"class_name":"网站","class_desc":"值得推荐的网站","link_list":[{"name":"跟李沐学AI的入门课","link":"https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/20221004001647.png","descr":"视频网站"},{"name":"OpenMMLab","link":"https://openmmlab.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/httpsi.loli.net202005145VyHPQqR6LWF39a.png.png","descr":"比较综合性的AI框架"}]}]}},"excerpt":"","more":"<h1 id=\"艰难的第一次搭博客\"><a href=\"#艰难的第一次搭博客\" class=\"headerlink\" title=\"艰难的第一次搭博客\"></a>艰难的第一次搭博客</h1><p>其实我在很早之前就想搭博客,大概大一开始的时候,就想着做一些有意义,有兴趣的事,结果一直拖到了现在才开始真正意义上的实践,我也是趁着这次对大一的培训搭建博客,顺便才开始做,看上去不是很难的一件事,实际去做,我却遇到了很多困难,就光配置markdown的front-matter的时候,因为不知道里面还有其他东西,就一直报错,而且和其他一起弄的,我还找不到原因,就导致我花了很大的时间,最后遇到的一个问题是图片的在线存储问题,最后用的码云的仓库来放的,最后头像也解决了,我才能说,我基本才算是搭建成了一个基本的框架。<br>哎,之前跟现在相比,其实并不忙的,但也是懒,还有各种找的原因,结果到现在,对这样搭博客的基本知识都还都不太了解,有点小愧疚,以后还是得加把劲了。<br>现在还有一堆大作业要去写,剩下的时间也不多了,就先这样吧。</p>\n"},{"title":"浅谈《原神》游戏的理解","date":"2023-02-07T00:00:00.000Z","keywords":"随笔、生活","description":"一点点的理解","top_img":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/genshin2.jpg","cover":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/genshin2.jpg","comments":1,"toc":null,"toc_number":null,"copyright":null,"copyright_author":"Jack Zhu","copyright_author_href":null,"copyright_url":"http://jackzhu.top/","copyright_info":null,"mathjax":null,"katex":null,"aplayer":null,"highlight_shrink":null,"aside":null,"_content":"\n# 浅谈《原神》游戏的理解\n\n## 关于游戏本身\n\n游戏本身而言是全平台兼容的角色扮演(RPG)游戏,在更多的时候是划分在手游类别的,在手游中属于天花板的水平,但是相比于很多主机游戏以及部分买断制游戏如埃尔登法环、赛博朋克2077、荒野大镖客等游戏还是有不小的差距。作为一款国产二次元游戏,该游戏做的已经很不错了,自从游戏发布以来,月充值流水屡创新高,小部分的重度氪金用户支撑起了大部分的零氪玩家,不氪金也可以体验到游戏的所有内容和大部分游戏体验,氪金的点主要就在于角色和武器需要抽取,而抽取的成本不低,16元一抽,在非常特殊的情况下甚至需要两千多元才能抽取到一个角色,这也是游戏被诟病的主要一点。\n\n## 对于游戏受众\n\n对于游戏受众而言,可以在游戏中体验到不同的国家,在扮演旅行者的过程中体验到多种多样的内容,很多人是冲着游戏角色来的,也有很多是体验高质量的画风等等。\n\n游戏好的一点是游戏属于内容制作型,属于PVE即玩家对战环境,这样玩家与玩家之间不存在什么竞争关系,这样使得游戏的风气是非常和谐的,在这么长时间的游戏过程中和很多玩家交流,都是非常热心帮忙的,大佬后期长草经常会帮新玩家探索打boss等等;而很多游戏都是属于PVP,即玩家和玩家对战,这样的竞技性游戏很多时候几乎每次玩都会见到互相骂的情况。相比之下,原神游戏的环境还是好了太多。\n\n相比于买断制游戏,这种无门槛体验所有内容的方式还是更适应实际的需要,很多人天天呼吁买断制如何好,然而叫好不叫座,动辄数百元的游戏,还没开始玩就要先花几百元,还不知道好不好以及能不能玩得来,成本还是太高了,所谓的外国人更喜欢3A大作也并没有,原神在海外的流水也非常高,也很受国外玩家喜爱。对于很多游戏玩家,不仅有很多买断游戏,也在原神中氪金了很多,很多游戏都玩,也有了不同的游戏体验。\n\n除此之外,游戏制作中还花重金在音乐和画面上,在游戏中也能体验到各国传统的音乐,相关音乐很多时候都是各国的交响乐团演奏的,制作品质不低,高雅的艺术也变得易于接受和体验,对于玩家而言也是很不错的。游戏的制作过程中也发扬了部分中国传统文化,将很多传统傩舞戏剧等内容加入游戏,将非常晦涩难以接近体验的传统文化变得通俗易接受,也让外国人了解到这些内容,虽然不能完全成为文化输出,但是让外国人了解到这些,甚至进一步加深了解还是很好的,相比之前大价钱在各国建设孔子学院而收效甚微,这种潜移默化的方式还是更容易接受,也赚得了外国人的钱。虽然米哈游作为一个公司也是要盈利,但是在盈利的过程中确实对于中国文化的输出起到了一点的作用,这点也是值得肯定的。\n\n## 对于网络喷子\n\n一部分网络喷子的关注点在于《原神》的全平台兼容性,全平台中很多玩家都是手游玩家,而很多玩家是PC玩家或者主机玩家,在游戏圈中存在着所谓的鄙视链,即主机>PC>手游,这种鄙视究其根本在于经济基础,一般家庭很少会有花几千元买游戏机;个人电脑适用性较广;手游成本最低,可以玩手游的人最为广泛。《原神》更多的时候是作为手游来比较,因此很多时候处于鄙视圈底层。这种鄙视深究可以发现,相比人种歧视,很多时候贫富差距的歧视以及地域歧视都不容忽略。\n\n另一部分原因是由于游戏做的过于好,游戏质量之高远高于之前的其他很多游戏,游戏火出圈后就存在几种问题:\n\n1. 很多人接触的游戏都是较少的,只有主流的《王者荣耀》、《和平精英》、《英雄联盟》或者吃鸡、守望、CF、csgo等等,部分游戏质量并不高,但是基于社交的游戏更符合大众推广,哪怕游戏质量一般,但是《原神》在手游上的天花板让很多人第一次接触到很好玩的游戏,日常痴迷甚至到处开喷说不如原神,在和《原神》毫无关系的地方刷游戏的相关内容或者引战。\n2. 游戏玩家数量过多导致的问题就是受众过于广泛,作为一款12+的游戏,游戏中可能有小中学生到高中大学生,再到不同年龄阶段和不同文化水平的人,俗话说林子大了什么鸟都有,存在部分不理智的玩家也很正常,这种就类似于一个地区的人有个别不文明就直接认为整个地区的人都有问题,这样的玩家毕竟是少数。很多游戏如英雄联盟等有时候玩家也会有不理智的行为,也不会有很多人认为这一群体就有问题了,同样也是受众广泛,表现很多时候并不同。\n3. 游戏质量高对于竞争对手的压力,相比之前的很多游戏,这都算是降维打击,演示的视频就是实际实机视频,这种就类似于吃了一碗红烧牛肉面,打开方便面发现包装和实物一样,这种在手游中从未遇到过,导致竞品难以望其项背,相比于投巨资做同等级别的游戏还可能竞争不过,抹黑反串引战已经是成本最低的最优解了,因此从两年半前游戏发布以及游戏刚出之前很多媒体都声称黑暗降临,至今很多都在抹黑并在各种无关的地方刷相关内容,或者取相关的名字换头像,然后发引战言论,这也就是最初所谓op的由来。\n4. 很多玩家的跟风心理,部分玩家也没玩过很多游戏,也没体验过《原神》,但是经常在很多地方刷到相关的反对言论就认为游戏如何不好,低人一等并鄙视玩游戏的人,很多这种人都是心智不成熟,玩游戏还能玩出优越感,也有的这些人后来也开始玩原神,也是出于跟风心理,不过这也正常,毕竟很多人都是这样的。\n5. 部分玩家的崇洋媚外心理,认为外国人做的东西就是好的,中国人做的就是不好的,就要抹黑,然而在国外,现在已经过去了两年半,《原神》游戏的流水还是很高,热度也不断,移动端2022年就超过了190亿,实际而言,身边玩原神的很多,大部分都不是手游玩家,实际流水要高很多,游戏质量得到了肯定。在国外都很受欢迎证明外国人也肯定,那么很多时候在国内黑的更多可能会有点奇怪。\n\n## 对玩家潜在的风险\n\n游戏制作较为精美,而且属于角色扮演类型的游戏可能会导致的问题有以下几点:\n\n1. 游戏较为精美而容易沉溺于虚拟世界,一玩就会花去很多时间,导致用于平时生活的时间减少,相比于很多游戏而言,《原神》用于每日基本任务等内容的时间约为半小时,加上活动抽时间做,实际而言消耗的时间并不是很严重的问题。\n2. 游戏中角色可以见到多样的世界,扮演能力强大的旅行者,而这种体验是在现实生活中不可能体验到的,出于人类的本能,这种落差是肯定会面对的,很多时候游戏玩家每天会花更多的精力在游戏中,进而影响现实生活。\n3. 游戏虽然可以联机,但是主要玩法和内容都是单机游戏,这种在互联网时代普遍存在的问题更严重了:缺乏和人的交流,更多的和游戏内探索互动,可能导致和人交往的能力下降,性格内向以及部分性格障碍,这种潜在的问题对于部分人而言是有影响的。\n4. 游戏的一大卖点在于人物角色,人物的塑造,声音以及服装的设计是非常优秀的。实事求是的来说,一定程度的软色情,很多时候经常“老婆”的这样叫着,很多时候是出于图一乐的心理,但是有时候也会有不小的问题。游戏中的角色很多时候都有一定的人设和意义,代表着一定的特点,很多时候都是较为完美的,让人非常喜爱,但是过于沉迷于虚拟的人往往会提高人的阈值,这样在现实生活中见到正常人都是不完美的时候产生的巨大落差有可能会使得不能很好的面对现实生活中的人。\n\n## 总结\n\n写这些更多的是为了树立一个正确的思想,《原神》也不可能非常完美,但是为了黑而黑或者跟风输出可能并没有什么意义,游戏作为日常生活的一个调剂,适度游戏放松也是很好的,过于沉迷游戏而忽略现实生活则会带来问题,游戏只是个工具,想玩什么就玩什么,但是借此非要打个标签就没必要了,愿读者也有正确的价值观。","source":"_posts/浅谈《原神》游戏的理解.md","raw":"---\ntitle: 浅谈《原神》游戏的理解\ndate: 2023/02/07\ntags: 随笔\ncategories: 生活\nkeywords: 随笔、生活\ndescription: 一点点的理解\ntop_img: https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/genshin2.jpg\ncover: https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/genshin2.jpg\ncomments: true\ntoc:\ntoc_number:\ncopyright:\ncopyright_author: Jack Zhu\ncopyright_author_href: \ncopyright_url: http://jackzhu.top/\ncopyright_info:\nmathjax:\nkatex:\naplayer:\nhighlight_shrink:\naside:\n---\n\n# 浅谈《原神》游戏的理解\n\n## 关于游戏本身\n\n游戏本身而言是全平台兼容的角色扮演(RPG)游戏,在更多的时候是划分在手游类别的,在手游中属于天花板的水平,但是相比于很多主机游戏以及部分买断制游戏如埃尔登法环、赛博朋克2077、荒野大镖客等游戏还是有不小的差距。作为一款国产二次元游戏,该游戏做的已经很不错了,自从游戏发布以来,月充值流水屡创新高,小部分的重度氪金用户支撑起了大部分的零氪玩家,不氪金也可以体验到游戏的所有内容和大部分游戏体验,氪金的点主要就在于角色和武器需要抽取,而抽取的成本不低,16元一抽,在非常特殊的情况下甚至需要两千多元才能抽取到一个角色,这也是游戏被诟病的主要一点。\n\n## 对于游戏受众\n\n对于游戏受众而言,可以在游戏中体验到不同的国家,在扮演旅行者的过程中体验到多种多样的内容,很多人是冲着游戏角色来的,也有很多是体验高质量的画风等等。\n\n游戏好的一点是游戏属于内容制作型,属于PVE即玩家对战环境,这样玩家与玩家之间不存在什么竞争关系,这样使得游戏的风气是非常和谐的,在这么长时间的游戏过程中和很多玩家交流,都是非常热心帮忙的,大佬后期长草经常会帮新玩家探索打boss等等;而很多游戏都是属于PVP,即玩家和玩家对战,这样的竞技性游戏很多时候几乎每次玩都会见到互相骂的情况。相比之下,原神游戏的环境还是好了太多。\n\n相比于买断制游戏,这种无门槛体验所有内容的方式还是更适应实际的需要,很多人天天呼吁买断制如何好,然而叫好不叫座,动辄数百元的游戏,还没开始玩就要先花几百元,还不知道好不好以及能不能玩得来,成本还是太高了,所谓的外国人更喜欢3A大作也并没有,原神在海外的流水也非常高,也很受国外玩家喜爱。对于很多游戏玩家,不仅有很多买断游戏,也在原神中氪金了很多,很多游戏都玩,也有了不同的游戏体验。\n\n除此之外,游戏制作中还花重金在音乐和画面上,在游戏中也能体验到各国传统的音乐,相关音乐很多时候都是各国的交响乐团演奏的,制作品质不低,高雅的艺术也变得易于接受和体验,对于玩家而言也是很不错的。游戏的制作过程中也发扬了部分中国传统文化,将很多传统傩舞戏剧等内容加入游戏,将非常晦涩难以接近体验的传统文化变得通俗易接受,也让外国人了解到这些内容,虽然不能完全成为文化输出,但是让外国人了解到这些,甚至进一步加深了解还是很好的,相比之前大价钱在各国建设孔子学院而收效甚微,这种潜移默化的方式还是更容易接受,也赚得了外国人的钱。虽然米哈游作为一个公司也是要盈利,但是在盈利的过程中确实对于中国文化的输出起到了一点的作用,这点也是值得肯定的。\n\n## 对于网络喷子\n\n一部分网络喷子的关注点在于《原神》的全平台兼容性,全平台中很多玩家都是手游玩家,而很多玩家是PC玩家或者主机玩家,在游戏圈中存在着所谓的鄙视链,即主机>PC>手游,这种鄙视究其根本在于经济基础,一般家庭很少会有花几千元买游戏机;个人电脑适用性较广;手游成本最低,可以玩手游的人最为广泛。《原神》更多的时候是作为手游来比较,因此很多时候处于鄙视圈底层。这种鄙视深究可以发现,相比人种歧视,很多时候贫富差距的歧视以及地域歧视都不容忽略。\n\n另一部分原因是由于游戏做的过于好,游戏质量之高远高于之前的其他很多游戏,游戏火出圈后就存在几种问题:\n\n1. 很多人接触的游戏都是较少的,只有主流的《王者荣耀》、《和平精英》、《英雄联盟》或者吃鸡、守望、CF、csgo等等,部分游戏质量并不高,但是基于社交的游戏更符合大众推广,哪怕游戏质量一般,但是《原神》在手游上的天花板让很多人第一次接触到很好玩的游戏,日常痴迷甚至到处开喷说不如原神,在和《原神》毫无关系的地方刷游戏的相关内容或者引战。\n2. 游戏玩家数量过多导致的问题就是受众过于广泛,作为一款12+的游戏,游戏中可能有小中学生到高中大学生,再到不同年龄阶段和不同文化水平的人,俗话说林子大了什么鸟都有,存在部分不理智的玩家也很正常,这种就类似于一个地区的人有个别不文明就直接认为整个地区的人都有问题,这样的玩家毕竟是少数。很多游戏如英雄联盟等有时候玩家也会有不理智的行为,也不会有很多人认为这一群体就有问题了,同样也是受众广泛,表现很多时候并不同。\n3. 游戏质量高对于竞争对手的压力,相比之前的很多游戏,这都算是降维打击,演示的视频就是实际实机视频,这种就类似于吃了一碗红烧牛肉面,打开方便面发现包装和实物一样,这种在手游中从未遇到过,导致竞品难以望其项背,相比于投巨资做同等级别的游戏还可能竞争不过,抹黑反串引战已经是成本最低的最优解了,因此从两年半前游戏发布以及游戏刚出之前很多媒体都声称黑暗降临,至今很多都在抹黑并在各种无关的地方刷相关内容,或者取相关的名字换头像,然后发引战言论,这也就是最初所谓op的由来。\n4. 很多玩家的跟风心理,部分玩家也没玩过很多游戏,也没体验过《原神》,但是经常在很多地方刷到相关的反对言论就认为游戏如何不好,低人一等并鄙视玩游戏的人,很多这种人都是心智不成熟,玩游戏还能玩出优越感,也有的这些人后来也开始玩原神,也是出于跟风心理,不过这也正常,毕竟很多人都是这样的。\n5. 部分玩家的崇洋媚外心理,认为外国人做的东西就是好的,中国人做的就是不好的,就要抹黑,然而在国外,现在已经过去了两年半,《原神》游戏的流水还是很高,热度也不断,移动端2022年就超过了190亿,实际而言,身边玩原神的很多,大部分都不是手游玩家,实际流水要高很多,游戏质量得到了肯定。在国外都很受欢迎证明外国人也肯定,那么很多时候在国内黑的更多可能会有点奇怪。\n\n## 对玩家潜在的风险\n\n游戏制作较为精美,而且属于角色扮演类型的游戏可能会导致的问题有以下几点:\n\n1. 游戏较为精美而容易沉溺于虚拟世界,一玩就会花去很多时间,导致用于平时生活的时间减少,相比于很多游戏而言,《原神》用于每日基本任务等内容的时间约为半小时,加上活动抽时间做,实际而言消耗的时间并不是很严重的问题。\n2. 游戏中角色可以见到多样的世界,扮演能力强大的旅行者,而这种体验是在现实生活中不可能体验到的,出于人类的本能,这种落差是肯定会面对的,很多时候游戏玩家每天会花更多的精力在游戏中,进而影响现实生活。\n3. 游戏虽然可以联机,但是主要玩法和内容都是单机游戏,这种在互联网时代普遍存在的问题更严重了:缺乏和人的交流,更多的和游戏内探索互动,可能导致和人交往的能力下降,性格内向以及部分性格障碍,这种潜在的问题对于部分人而言是有影响的。\n4. 游戏的一大卖点在于人物角色,人物的塑造,声音以及服装的设计是非常优秀的。实事求是的来说,一定程度的软色情,很多时候经常“老婆”的这样叫着,很多时候是出于图一乐的心理,但是有时候也会有不小的问题。游戏中的角色很多时候都有一定的人设和意义,代表着一定的特点,很多时候都是较为完美的,让人非常喜爱,但是过于沉迷于虚拟的人往往会提高人的阈值,这样在现实生活中见到正常人都是不完美的时候产生的巨大落差有可能会使得不能很好的面对现实生活中的人。\n\n## 总结\n\n写这些更多的是为了树立一个正确的思想,《原神》也不可能非常完美,但是为了黑而黑或者跟风输出可能并没有什么意义,游戏作为日常生活的一个调剂,适度游戏放松也是很好的,过于沉迷游戏而忽略现实生活则会带来问题,游戏只是个工具,想玩什么就玩什么,但是借此非要打个标签就没必要了,愿读者也有正确的价值观。","slug":"浅谈《原神》游戏的理解","published":1,"updated":"2023-03-23T13:47:53.213Z","layout":"post","photos":[],"link":"","_id":"clta6l3va000x3svxc0l6hyqr","content":"<h1 id=\"浅谈《原神》游戏的理解\"><a href=\"#浅谈《原神》游戏的理解\" class=\"headerlink\" title=\"浅谈《原神》游戏的理解\"></a>浅谈《原神》游戏的理解</h1><h2 id=\"关于游戏本身\"><a href=\"#关于游戏本身\" class=\"headerlink\" title=\"关于游戏本身\"></a>关于游戏本身</h2><p>游戏本身而言是全平台兼容的角色扮演(RPG)游戏,在更多的时候是划分在手游类别的,在手游中属于天花板的水平,但是相比于很多主机游戏以及部分买断制游戏如埃尔登法环、赛博朋克2077、荒野大镖客等游戏还是有不小的差距。作为一款国产二次元游戏,该游戏做的已经很不错了,自从游戏发布以来,月充值流水屡创新高,小部分的重度氪金用户支撑起了大部分的零氪玩家,不氪金也可以体验到游戏的所有内容和大部分游戏体验,氪金的点主要就在于角色和武器需要抽取,而抽取的成本不低,16元一抽,在非常特殊的情况下甚至需要两千多元才能抽取到一个角色,这也是游戏被诟病的主要一点。</p>\n<h2 id=\"对于游戏受众\"><a href=\"#对于游戏受众\" class=\"headerlink\" title=\"对于游戏受众\"></a>对于游戏受众</h2><p>对于游戏受众而言,可以在游戏中体验到不同的国家,在扮演旅行者的过程中体验到多种多样的内容,很多人是冲着游戏角色来的,也有很多是体验高质量的画风等等。</p>\n<p>游戏好的一点是游戏属于内容制作型,属于PVE即玩家对战环境,这样玩家与玩家之间不存在什么竞争关系,这样使得游戏的风气是非常和谐的,在这么长时间的游戏过程中和很多玩家交流,都是非常热心帮忙的,大佬后期长草经常会帮新玩家探索打boss等等;而很多游戏都是属于PVP,即玩家和玩家对战,这样的竞技性游戏很多时候几乎每次玩都会见到互相骂的情况。相比之下,原神游戏的环境还是好了太多。</p>\n<p>相比于买断制游戏,这种无门槛体验所有内容的方式还是更适应实际的需要,很多人天天呼吁买断制如何好,然而叫好不叫座,动辄数百元的游戏,还没开始玩就要先花几百元,还不知道好不好以及能不能玩得来,成本还是太高了,所谓的外国人更喜欢3A大作也并没有,原神在海外的流水也非常高,也很受国外玩家喜爱。对于很多游戏玩家,不仅有很多买断游戏,也在原神中氪金了很多,很多游戏都玩,也有了不同的游戏体验。</p>\n<p>除此之外,游戏制作中还花重金在音乐和画面上,在游戏中也能体验到各国传统的音乐,相关音乐很多时候都是各国的交响乐团演奏的,制作品质不低,高雅的艺术也变得易于接受和体验,对于玩家而言也是很不错的。游戏的制作过程中也发扬了部分中国传统文化,将很多传统傩舞戏剧等内容加入游戏,将非常晦涩难以接近体验的传统文化变得通俗易接受,也让外国人了解到这些内容,虽然不能完全成为文化输出,但是让外国人了解到这些,甚至进一步加深了解还是很好的,相比之前大价钱在各国建设孔子学院而收效甚微,这种潜移默化的方式还是更容易接受,也赚得了外国人的钱。虽然米哈游作为一个公司也是要盈利,但是在盈利的过程中确实对于中国文化的输出起到了一点的作用,这点也是值得肯定的。</p>\n<h2 id=\"对于网络喷子\"><a href=\"#对于网络喷子\" class=\"headerlink\" title=\"对于网络喷子\"></a>对于网络喷子</h2><p>一部分网络喷子的关注点在于《原神》的全平台兼容性,全平台中很多玩家都是手游玩家,而很多玩家是PC玩家或者主机玩家,在游戏圈中存在着所谓的鄙视链,即主机>PC>手游,这种鄙视究其根本在于经济基础,一般家庭很少会有花几千元买游戏机;个人电脑适用性较广;手游成本最低,可以玩手游的人最为广泛。《原神》更多的时候是作为手游来比较,因此很多时候处于鄙视圈底层。这种鄙视深究可以发现,相比人种歧视,很多时候贫富差距的歧视以及地域歧视都不容忽略。</p>\n<p>另一部分原因是由于游戏做的过于好,游戏质量之高远高于之前的其他很多游戏,游戏火出圈后就存在几种问题:</p>\n<ol>\n<li>很多人接触的游戏都是较少的,只有主流的《王者荣耀》、《和平精英》、《英雄联盟》或者吃鸡、守望、CF、csgo等等,部分游戏质量并不高,但是基于社交的游戏更符合大众推广,哪怕游戏质量一般,但是《原神》在手游上的天花板让很多人第一次接触到很好玩的游戏,日常痴迷甚至到处开喷说不如原神,在和《原神》毫无关系的地方刷游戏的相关内容或者引战。</li>\n<li>游戏玩家数量过多导致的问题就是受众过于广泛,作为一款12+的游戏,游戏中可能有小中学生到高中大学生,再到不同年龄阶段和不同文化水平的人,俗话说林子大了什么鸟都有,存在部分不理智的玩家也很正常,这种就类似于一个地区的人有个别不文明就直接认为整个地区的人都有问题,这样的玩家毕竟是少数。很多游戏如英雄联盟等有时候玩家也会有不理智的行为,也不会有很多人认为这一群体就有问题了,同样也是受众广泛,表现很多时候并不同。</li>\n<li>游戏质量高对于竞争对手的压力,相比之前的很多游戏,这都算是降维打击,演示的视频就是实际实机视频,这种就类似于吃了一碗红烧牛肉面,打开方便面发现包装和实物一样,这种在手游中从未遇到过,导致竞品难以望其项背,相比于投巨资做同等级别的游戏还可能竞争不过,抹黑反串引战已经是成本最低的最优解了,因此从两年半前游戏发布以及游戏刚出之前很多媒体都声称黑暗降临,至今很多都在抹黑并在各种无关的地方刷相关内容,或者取相关的名字换头像,然后发引战言论,这也就是最初所谓op的由来。</li>\n<li>很多玩家的跟风心理,部分玩家也没玩过很多游戏,也没体验过《原神》,但是经常在很多地方刷到相关的反对言论就认为游戏如何不好,低人一等并鄙视玩游戏的人,很多这种人都是心智不成熟,玩游戏还能玩出优越感,也有的这些人后来也开始玩原神,也是出于跟风心理,不过这也正常,毕竟很多人都是这样的。</li>\n<li>部分玩家的崇洋媚外心理,认为外国人做的东西就是好的,中国人做的就是不好的,就要抹黑,然而在国外,现在已经过去了两年半,《原神》游戏的流水还是很高,热度也不断,移动端2022年就超过了190亿,实际而言,身边玩原神的很多,大部分都不是手游玩家,实际流水要高很多,游戏质量得到了肯定。在国外都很受欢迎证明外国人也肯定,那么很多时候在国内黑的更多可能会有点奇怪。</li>\n</ol>\n<h2 id=\"对玩家潜在的风险\"><a href=\"#对玩家潜在的风险\" class=\"headerlink\" title=\"对玩家潜在的风险\"></a>对玩家潜在的风险</h2><p>游戏制作较为精美,而且属于角色扮演类型的游戏可能会导致的问题有以下几点:</p>\n<ol>\n<li>游戏较为精美而容易沉溺于虚拟世界,一玩就会花去很多时间,导致用于平时生活的时间减少,相比于很多游戏而言,《原神》用于每日基本任务等内容的时间约为半小时,加上活动抽时间做,实际而言消耗的时间并不是很严重的问题。</li>\n<li>游戏中角色可以见到多样的世界,扮演能力强大的旅行者,而这种体验是在现实生活中不可能体验到的,出于人类的本能,这种落差是肯定会面对的,很多时候游戏玩家每天会花更多的精力在游戏中,进而影响现实生活。</li>\n<li>游戏虽然可以联机,但是主要玩法和内容都是单机游戏,这种在互联网时代普遍存在的问题更严重了:缺乏和人的交流,更多的和游戏内探索互动,可能导致和人交往的能力下降,性格内向以及部分性格障碍,这种潜在的问题对于部分人而言是有影响的。</li>\n<li>游戏的一大卖点在于人物角色,人物的塑造,声音以及服装的设计是非常优秀的。实事求是的来说,一定程度的软色情,很多时候经常“老婆”的这样叫着,很多时候是出于图一乐的心理,但是有时候也会有不小的问题。游戏中的角色很多时候都有一定的人设和意义,代表着一定的特点,很多时候都是较为完美的,让人非常喜爱,但是过于沉迷于虚拟的人往往会提高人的阈值,这样在现实生活中见到正常人都是不完美的时候产生的巨大落差有可能会使得不能很好的面对现实生活中的人。</li>\n</ol>\n<h2 id=\"总结\"><a href=\"#总结\" class=\"headerlink\" title=\"总结\"></a>总结</h2><p>写这些更多的是为了树立一个正确的思想,《原神》也不可能非常完美,但是为了黑而黑或者跟风输出可能并没有什么意义,游戏作为日常生活的一个调剂,适度游戏放松也是很好的,过于沉迷游戏而忽略现实生活则会带来问题,游戏只是个工具,想玩什么就玩什么,但是借此非要打个标签就没必要了,愿读者也有正确的价值观。</p>\n","site":{"data":{"link":[{"class_name":"友情链接","class_desc":"那些人,那些事","link_list":[{"name":"冉崇治","link":"http://resetran.top/","avatar":"https://gcore.jsdelivr.net/gh/ranchongzhi/ranchongzhi.github.io@master/medias/logo.png","descr":"王者打野贼溜的NeRF研究者"},{"name":"六个骨头","link":"http://www.bone6.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/zhan.jpg","descr":"飞桨开发者专家"},{"name":"Evan CHEN","link":"https://lhchen.top/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/_8RG~~1E221F8I(K2FUV4KJ.bmp","descr":"保研清深的图表示学习、语音驱动生成大牛"},{"name":"BB酱","link":"https://www.bbbbchan.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/bb.jpg","descr":"南开大学分割领域强者"},{"name":"sund","link":"http://www.sund-xys.cn/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/sund.jpg","descr":"西交网络&无线&侧信道大爹"},{"name":"冯玉龙","link":"http://bestxinyu.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/PicGo/feng.jpg","descr":"又一个大佬"},{"name":"西电浪潮俱乐部","link":"http://www.xdu-inspur.club/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/inspur.jpg","descr":"在西电的技术性交流社团"}]},{"class_name":"网站","class_desc":"值得推荐的网站","link_list":[{"name":"跟李沐学AI的入门课","link":"https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/20221004001647.png","descr":"视频网站"},{"name":"OpenMMLab","link":"https://openmmlab.com/","avatar":"https://gcore.jsdelivr.net/gh/CoderJackZhu/bloggallery/img/httpsi.loli.net202005145VyHPQqR6LWF39a.png.png","descr":"比较综合性的AI框架"}]}]}},"excerpt":"","more":"<h1 id=\"浅谈《原神》游戏的理解\"><a href=\"#浅谈《原神》游戏的理解\" class=\"headerlink\" title=\"浅谈《原神》游戏的理解\"></a>浅谈《原神》游戏的理解</h1><h2 id=\"关于游戏本身\"><a href=\"#关于游戏本身\" class=\"headerlink\" title=\"关于游戏本身\"></a>关于游戏本身</h2><p>游戏本身而言是全平台兼容的角色扮演(RPG)游戏,在更多的时候是划分在手游类别的,在手游中属于天花板的水平,但是相比于很多主机游戏以及部分买断制游戏如埃尔登法环、赛博朋克2077、荒野大镖客等游戏还是有不小的差距。作为一款国产二次元游戏,该游戏做的已经很不错了,自从游戏发布以来,月充值流水屡创新高,小部分的重度氪金用户支撑起了大部分的零氪玩家,不氪金也可以体验到游戏的所有内容和大部分游戏体验,氪金的点主要就在于角色和武器需要抽取,而抽取的成本不低,16元一抽,在非常特殊的情况下甚至需要两千多元才能抽取到一个角色,这也是游戏被诟病的主要一点。</p>\n<h2 id=\"对于游戏受众\"><a href=\"#对于游戏受众\" class=\"headerlink\" title=\"对于游戏受众\"></a>对于游戏受众</h2><p>对于游戏受众而言,可以在游戏中体验到不同的国家,在扮演旅行者的过程中体验到多种多样的内容,很多人是冲着游戏角色来的,也有很多是体验高质量的画风等等。</p>\n<p>游戏好的一点是游戏属于内容制作型,属于PVE即玩家对战环境,这样玩家与玩家之间不存在什么竞争关系,这样使得游戏的风气是非常和谐的,在这么长时间的游戏过程中和很多玩家交流,都是非常热心帮忙的,大佬后期长草经常会帮新玩家探索打boss等等;而很多游戏都是属于PVP,即玩家和玩家对战,这样的竞技性游戏很多时候几乎每次玩都会见到互相骂的情况。相比之下,原神游戏的环境还是好了太多。</p>\n<p>相比于买断制游戏,这种无门槛体验所有内容的方式还是更适应实际的需要,很多人天天呼吁买断制如何好,然而叫好不叫座,动辄数百元的游戏,还没开始玩就要先花几百元,还不知道好不好以及能不能玩得来,成本还是太高了,所谓的外国人更喜欢3A大作也并没有,原神在海外的流水也非常高,也很受国外玩家喜爱。对于很多游戏玩家,不仅有很多买断游戏,也在原神中氪金了很多,很多游戏都玩,也有了不同的游戏体验。</p>\n<p>除此之外,游戏制作中还花重金在音乐和画面上,在游戏中也能体验到各国传统的音乐,相关音乐很多时候都是各国的交响乐团演奏的,制作品质不低,高雅的艺术也变得易于接受和体验,对于玩家而言也是很不错的。游戏的制作过程中也发扬了部分中国传统文化,将很多传统傩舞戏剧等内容加入游戏,将非常晦涩难以接近体验的传统文化变得通俗易接受,也让外国人了解到这些内容,虽然不能完全成为文化输出,但是让外国人了解到这些,甚至进一步加深了解还是很好的,相比之前大价钱在各国建设孔子学院而收效甚微,这种潜移默化的方式还是更容易接受,也赚得了外国人的钱。虽然米哈游作为一个公司也是要盈利,但是在盈利的过程中确实对于中国文化的输出起到了一点的作用,这点也是值得肯定的。</p>\n<h2 id=\"对于网络喷子\"><a href=\"#对于网络喷子\" class=\"headerlink\" title=\"对于网络喷子\"></a>对于网络喷子</h2><p>一部分网络喷子的关注点在于《原神》的全平台兼容性,全平台中很多玩家都是手游玩家,而很多玩家是PC玩家或者主机玩家,在游戏圈中存在着所谓的鄙视链,即主机>PC>手游,这种鄙视究其根本在于经济基础,一般家庭很少会有花几千元买游戏机;个人电脑适用性较广;手游成本最低,可以玩手游的人最为广泛。《原神》更多的时候是作为手游来比较,因此很多时候处于鄙视圈底层。这种鄙视深究可以发现,相比人种歧视,很多时候贫富差距的歧视以及地域歧视都不容忽略。</p>\n<p>另一部分原因是由于游戏做的过于好,游戏质量之高远高于之前的其他很多游戏,游戏火出圈后就存在几种问题:</p>\n<ol>\n<li>很多人接触的游戏都是较少的,只有主流的《王者荣耀》、《和平精英》、《英雄联盟》或者吃鸡、守望、CF、csgo等等,部分游戏质量并不高,但是基于社交的游戏更符合大众推广,哪怕游戏质量一般,但是《原神》在手游上的天花板让很多人第一次接触到很好玩的游戏,日常痴迷甚至到处开喷说不如原神,在和《原神》毫无关系的地方刷游戏的相关内容或者引战。</li>\n<li>游戏玩家数量过多导致的问题就是受众过于广泛,作为一款12+的游戏,游戏中可能有小中学生到高中大学生,再到不同年龄阶段和不同文化水平的人,俗话说林子大了什么鸟都有,存在部分不理智的玩家也很正常,这种就类似于一个地区的人有个别不文明就直接认为整个地区的人都有问题,这样的玩家毕竟是少数。很多游戏如英雄联盟等有时候玩家也会有不理智的行为,也不会有很多人认为这一群体就有问题了,同样也是受众广泛,表现很多时候并不同。</li>\n<li>游戏质量高对于竞争对手的压力,相比之前的很多游戏,这都算是降维打击,演示的视频就是实际实机视频,这种就类似于吃了一碗红烧牛肉面,打开方便面发现包装和实物一样,这种在手游中从未遇到过,导致竞品难以望其项背,相比于投巨资做同等级别的游戏还可能竞争不过,抹黑反串引战已经是成本最低的最优解了,因此从两年半前游戏发布以及游戏刚出之前很多媒体都声称黑暗降临,至今很多都在抹黑并在各种无关的地方刷相关内容,或者取相关的名字换头像,然后发引战言论,这也就是最初所谓op的由来。</li>\n<li>很多玩家的跟风心理,部分玩家也没玩过很多游戏,也没体验过《原神》,但是经常在很多地方刷到相关的反对言论就认为游戏如何不好,低人一等并鄙视玩游戏的人,很多这种人都是心智不成熟,玩游戏还能玩出优越感,也有的这些人后来也开始玩原神,也是出于跟风心理,不过这也正常,毕竟很多人都是这样的。</li>\n<li>部分玩家的崇洋媚外心理,认为外国人做的东西就是好的,中国人做的就是不好的,就要抹黑,然而在国外,现在已经过去了两年半,《原神》游戏的流水还是很高,热度也不断,移动端2022年就超过了190亿,实际而言,身边玩原神的很多,大部分都不是手游玩家,实际流水要高很多,游戏质量得到了肯定。在国外都很受欢迎证明外国人也肯定,那么很多时候在国内黑的更多可能会有点奇怪。</li>\n</ol>\n<h2 id=\"对玩家潜在的风险\"><a href=\"#对玩家潜在的风险\" class=\"headerlink\" title=\"对玩家潜在的风险\"></a>对玩家潜在的风险</h2><p>游戏制作较为精美,而且属于角色扮演类型的游戏可能会导致的问题有以下几点:</p>\n<ol>\n<li>游戏较为精美而容易沉溺于虚拟世界,一玩就会花去很多时间,导致用于平时生活的时间减少,相比于很多游戏而言,《原神》用于每日基本任务等内容的时间约为半小时,加上活动抽时间做,实际而言消耗的时间并不是很严重的问题。</li>\n<li>游戏中角色可以见到多样的世界,扮演能力强大的旅行者,而这种体验是在现实生活中不可能体验到的,出于人类的本能,这种落差是肯定会面对的,很多时候游戏玩家每天会花更多的精力在游戏中,进而影响现实生活。</li>\n<li>游戏虽然可以联机,但是主要玩法和内容都是单机游戏,这种在互联网时代普遍存在的问题更严重了:缺乏和人的交流,更多的和游戏内探索互动,可能导致和人交往的能力下降,性格内向以及部分性格障碍,这种潜在的问题对于部分人而言是有影响的。</li>\n<li>游戏的一大卖点在于人物角色,人物的塑造,声音以及服装的设计是非常优秀的。实事求是的来说,一定程度的软色情,很多时候经常“老婆”的这样叫着,很多时候是出于图一乐的心理,但是有时候也会有不小的问题。游戏中的角色很多时候都有一定的人设和意义,代表着一定的特点,很多时候都是较为完美的,让人非常喜爱,但是过于沉迷于虚拟的人往往会提高人的阈值,这样在现实生活中见到正常人都是不完美的时候产生的巨大落差有可能会使得不能很好的面对现实生活中的人。</li>\n</ol>\n<h2 id=\"总结\"><a href=\"#总结\" class=\"headerlink\" title=\"总结\"></a>总结</h2><p>写这些更多的是为了树立一个正确的思想,《原神》也不可能非常完美,但是为了黑而黑或者跟风输出可能并没有什么意义,游戏作为日常生活的一个调剂,适度游戏放松也是很好的,过于沉迷游戏而忽略现实生活则会带来问题,游戏只是个工具,想玩什么就玩什么,但是借此非要打个标签就没必要了,愿读者也有正确的价值观。</p>\n"}],"PostAsset":[],"PostCategory":[{"post_id":"clta6l3us00013svxg6jr9v3q","category_id":"clta6l3uw00043svxait06mnt","_id":"clta6l3v1000g3svxhn6g6jve"},{"post_id":"clta6l3uu00033svx4n97h650","category_id":"clta6l3uz000b3svx1op9eo1a","_id":"clta6l3v2000l3svx56nyasfp"},{"post_id":"clta6l3ux00073svxctxj4nh2","category_id":"clta6l3v1000i3svxcms9b29n","_id":"clta6l3v3000p3svx3w7p0zpb"},{"post_id":"clta6l3uy00093svxc3s14ua1","category_id":"clta6l3v2000n3svxg20v4178","_id":"clta6l3v3000r3svxfuku5je0"},{"post_id":"clta6l3v9000t3svxfqv6d58t","category_id":"clta6l3v2000n3svxg20v4178","_id":"clta6l3va000z3svx3zpdeor1"},{"post_id":"clta6l3v9000w3svxdsh7a7yz","category_id":"clta6l3v2000n3svxg20v4178","_id":"clta6l3va00123svxd4p337ue"},{"post_id":"clta6l3va000x3svxc0l6hyqr","category_id":"clta6l3v2000n3svxg20v4178","_id":"clta6l3va00133svx0uxabs2q"},{"post_id":"clta6l3v8000s3svxegdebj03","category_id":"clta6l3v9000u3svx8j7gd4d4","_id":"clta6l3va00153svxh7nzenza"}],"PostTag":[{"post_id":"clta6l3us00013svxg6jr9v3q","tag_id":"clta6l3ux00053svx3jsn6s7y","_id":"clta6l3v0000d3svx1bgh276l"},{"post_id":"clta6l3uu00033svx4n97h650","tag_id":"clta6l3ux00053svx3jsn6s7y","_id":"clta6l3v1000j3svx1u687eof"},{"post_id":"clta6l3ux00073svxctxj4nh2","tag_id":"clta6l3v1000h3svx0xbv806q","_id":"clta6l3v2000o3svxbr00dcje"},{"post_id":"clta6l3uy00093svxc3s14ua1","tag_id":"clta6l3v2000m3svxfiifhqw2","_id":"clta6l3v3000q3svx7i036hql"},{"post_id":"clta6l3v9000w3svxdsh7a7yz","tag_id":"clta6l3v2000m3svxfiifhqw2","_id":"clta6l3va000y3svxfnuo03bw"},{"post_id":"clta6l3v8000s3svxegdebj03","tag_id":"clta6l3v9000v3svxcbnqapt8","_id":"clta6l3va00113svx6j23btff"},{"post_id":"clta6l3v9000t3svxfqv6d58t","tag_id":"clta6l3va00103svxbcpla3co","_id":"clta6l3vb00163svx0d80ac7n"},{"post_id":"clta6l3va000x3svxc0l6hyqr","tag_id":"clta6l3va00143svx5xtchf4q","_id":"clta6l3vb00173svx0rdncibf"}],"Tag":[{"name":"深度学习","_id":"clta6l3ux00053svx3jsn6s7y"},{"name":"Ubuntu","_id":"clta6l3v1000h3svx0xbv806q"},{"name":"记录生活","_id":"clta6l3v2000m3svxfiifhqw2"},{"name":"ActionFormer","_id":"clta6l3v9000v3svxcbnqapt8"},{"name":"生活","_id":"clta6l3va00103svxbcpla3co"},{"name":"随笔","_id":"clta6l3va00143svx5xtchf4q"}]}}