那些小网站是哪里人做的,网页小游戏flash不能正常运行,怎么把网站地图上传,专做国外商品的网站转载自本人的知乎回答#xff08;截止2024年9月#xff0c;1700赞同#xff0c;2400收藏#xff09; https://www.zhihu.com/question/566592612/answer/3063465880
如果你是一个大四的CS准研究生回去补基础课#xff0c;假如是科班CS甚至科班EE的话那你基础也太差了。你…转载自本人的知乎回答截止2024年9月1700赞同2400收藏 https://www.zhihu.com/question/566592612/answer/3063465880
如果你是一个大四的CS准研究生回去补基础课假如是科班CS甚至科班EE的话那你基础也太差了。你这个基础如果是去做视觉的科研是肯定做不了的。
转载请注明出处。 Triborg 包括估计对教授这种做计算物理的以及 曾晋哲 这种做计算化学的会很好使。不过二位皆大佬肯定是会了。 我这次就一次把所有的东西全部讲完。
但是这个问题是个好问题。值得好好写一写。尤其是针对一些刚刚入门data science的同学。我觉得还有必要再加几个东西上去dockerNvidia-dockerVMwarevim/vi服务器以及如何靠MobaXterm/winscp去连接服务器。 首先我们先说第一个东西。什么是anaconda。
1anaconda anaconda是一个软件是一个“集成开发环境。”anaconda是一个非常适合写Python的软件尤其是非常适合写Python的数据科学data science。其实Python还有很多别的作用甚至可以说除了生孩子写操作系统以外基本都能干包括很多半导体工程其实也就是烧砖哥本人科研方向的研发也要用Python。 当然市面上最常见的用Python的除了机器学习/深度学习/数据科学/数据可视化这一套用Python做网站或者做应用软件开发也是一个比较主流的活。后者我个人的经验是用著名的软件Intellij-IDEA做开发会比较好。当然那是另外一回事了。
Python在英语里是蟒蛇的意思。而anaconda其实是一种南美洲的水蟒。考虑到读者的感受图片我就不放了。
作为软件开发工具的anaconda是“集成”也就是把所有能用的工具都给你堆在一起。我粗略的把他分为写python的工具比如最典型的就是spyder和jupyter。前者非常适合做开发。非常适合写写给自己的程序后者非常适合做汇报。比如写一个数据科学的报告作为产品经理去写数据分析项目或者大学生研究生写作业。
Fig.1 anaconda-spyder打开长这个样。图片来自网络
另外一方面是支持这些开发工具的维护工具。比如安装一个新的开发环境删除一个开发环境安装一个新的库对库进行升级这类的工作。
那么为什么Python要搞这么麻烦的东西呢因为Python是一个向后兼容不向前兼容的语言。什么叫向后兼容不向前兼容Python后面的开发是不需要保证之前发布的语法还是对的。这样做的好处就是Python永远是一个非常简洁的语言。但是这样做的坏处也非常明显。就是Python会产生很多很多的“历史遗留问题。”
在Python的开发中这些活儿是可以说是非常讨厌的。初学者可以说无不头疼。最典型的就是如果你真正去做深度学习你经常会发现github上下载的深度学习的源代码你没有办法直接去执行。那是因为你电脑上或者服务器上的库的版本和他用的开发版本不一样。用anaconda是可以解决这个问题的配环境一个个去配但是会很麻烦。其实解决这个问题最好的方法是用docker甚至大部分深度学习的github code都会给你配一个docker的source file非常方便你去create一个新的镜像极大的降低你做深度学习的难度。docker这个后面我们再说。
相比之下docker才更适合干深度学习。anaconda配环境更适合处理一些你日常的反复需要去干的工作。这种工作的话一般你不需要反复去调python的库版本。这里面还有另一个问题anaconda你装一个新环境需要的硬盘空间是远大于docker新建一个镜像需要的硬盘空间的。
如果你比如说是一个简单做做data science做做量化分析计算物理/化学生物信息计量经济学的同学用anaconda知道怎么装环境怎么装库那其实就足够了。但是如果你的目标是做计算机视觉或者NLP等深度学习的研究你是绝对很难用一个docker去handle所有问题的。
这个工作在Python里面是由promptnavigator的命令行版navigatorpromopt的点鼠标版来完成。prompt支持conda和pip两个软件。而conda和pip具体是什么我们过会儿再来更详细的结合案例去说。
软件版的anaconda在这儿下载。记得下载免费版就足够了 Free Download | Anaconda
也可以参考一篇旧文 Anaconda核心特征环境管理及其使用指南 - 知乎 (zhihu.com)
2condapip 我们前面说到anaconda除了让你用spyder和jupyter去写代码以外更大的作用在于维护(Maintenace). 比如常用的包里anaconda自带的包包括numpypandasmatplotlibsklearn等。但是著名的图像处理库请注意这个是基于信号分析的不是深度学习OpenCV anaconda里面就没有。你得自己去安装。tensorflowpytorch你也得自己去安装。 要干这些活你就要有工具。pip和conda就是我们干这些事儿的工具。
从干活的角度在anaconda里面的conda和pip是没有任何区别的。操作的指令几乎都完全一样。但是大家还是需要从理论的高度去知道他们的区别。conda是一个通用的什么语言都可以管理的包。而pipPip install packages实际上是一个专门针对python开发的包管理器。跟著名的virtualenvPython后三大神器之一以后有文章我们可以专门介绍最早是在一块儿的。
不过他们还是有一些区别的。pip是从Pypi下载库而conda则是从anaconda的官方库里去下载库的。
Pypi是什么PyPIPython Package Index是Python的官方软件包仓库是一个用于共享、发布和安装Python软件包的中央存储库。它是由Python社区维护的一个公共资源供开发者共享和获取Python包。 PyPI是一个集中的存储库允许开发者将他们编写的Python库、框架和工具发布到一个统一的地方供其他人使用。开发者可以将自己开发的软件包上传到PyPI然后其他人可以使用pip等工具来从PyPI下载和安装这些软件包。 在PyPI上你可以找到大量的开源Python软件包涵盖了各种领域和用途从数据科学到Web开发、机器学习、自然语言处理等等。PyPI提供了一个方便的方式来发现、共享和安装Python软件包促进了Python社区的发展和合作。 要使用PyPI你可以使用pipPython的包管理工具来从PyPI下载和安装软件包。pip会连接到PyPI服务器查找指定的软件包并自动下载安装。这使得在Python项目中引入和使用第三方库变得非常简单和高效。
Fig. 2 Pypi的官方网站 我感觉Pypi的详细让我想起了NIST或者普林斯顿化学化工指南。基本涵盖了你要的那个库的全部信息。详细准确靠谱体贴。比如我的老师著名光伏电子工程专家Ned J. Daukes教授开发的著名的太阳能模拟工具solcore在pypi上也找得到。
更具体的conda和pip的区别可以参考这位大佬的文章 Anaconda与conda、pip与conda的区别 - 知乎 (zhihu.com)
我们在这儿从实战的角度给大家看一下怎么分别用pip和conda去安装包。
比如我们要用python去画图。除了系统自带的matplotlib还有几个非常著名的画图库 pyecharts一个百度开发的画图库。 plotly号称史上最强可视化工具。 如果你是一个产品经理或者对数据可视化有要求的人那么这种库可以帮助你解决问题。
你可以自己打开anaconda的prompt分别pip install pyecharts, conda install plotly, 当然反过来也可以看看他们的效果。其实他们是完全相同的。
有时候你如果发现用conda下载不了你就pip吧。pip下载不了你就conda吧。我刚才试了一下solcore。就存在这个问题我们的这个solcore我建议你一般不要在windows下用因为这个只能让你发挥出70%的功能。因为需要调用很多fortran的代码。你要实现在python里调用fortran是比较麻烦的。我试过很难搞。不要把时间浪费在这种没有意义的工作上。我的建议是在linux下用solcore根本不需要解决这个问题。包括在win自带的linux虚拟机上也可以直接实现这个功能。 Fig 3. conda install无法安装solcore(这个是个bug) 添加图片注释不超过 140 字可选
Fig 4. 我们用pip install就可以成功安装solcore 三docker/nvidia-docker docker是一个非常强悍的工具。如果你正经干深度学习用anaconda是解决不了你的问题的你肯定要用docker甚至nVidia docker在windows上用不成你要用linux去跑才能解决你的问题。
docker是个啥简单的来说docker采用了化学里的“沙箱反应思想。”其实也就是一种简化。docker理论上可以处理任何语言包括CjavaJavaScriptPython等等。一切语言。把你执行一个小程序所用的全部语言都浓缩到一个小小的“镜像”里面。然后如果你要跑这个程序就用一个小小的镜像就足够了。 10本 Docker 入门学习书籍推荐 (zhihu.com)
如果你要用docker那么我建议你最好懂一点vim的知识。因为在docker里面你要改代码要用vim。
nvidia-docker就是docker对GPU的一个升级。你要玩深度学习很多时候要用GPU。那么怎么办你就要套一层nVidia docker。这方面的东西你就得去看更详细的资料网站和文献了。
四tensorflowpytorch都是写深度学习的框架。一般用Python去调用。但是Matlab和java也可以。 深度学习具体怎么干活自己去看自己去研究自己去写代码。太多了不讲。比如你做object detection就那几个网络R-CNN, fast R-CNN, faster-RCNN以及yolo从v1到现在的v7不同的版本。代码你自己看。我如果有兴趣了可以讲讲这些代码和算法。
五服务器 很多时候我们需要把活放在大型计算机上去跑。或者我们需要能够用自己的电脑小终端去连接服务器跑代码。
服务器的本质就是一台大型计算机。一般正经的做深度学习的组都有服务器。要么是自己组里的要么是学校的超级计算机比如新南威尔士大学拥有南半球排名第一的超级计算机katana再不济也是花科研经费租的AWS阿里云腾讯云GCP或者华为云。
你要连服务器我推荐俩软件。第一个是mobaxterm第二个是winscp。但是这个地方务必注意必须从官方网站安装正版。严禁安装任何来历不明的连服务器软件否则非常容易被黑客入侵。盗走你的服务器资源用处很多比如拿去挖矿。
如果你们用的是组里的服务器的话组里的老板肯定会告诉你非常详细的怎么去搞的。一般来说学生用户要在学校的超算或者cluster上注册一个号。学校的服务器是最好的。一般有专门的工程师去维护。
我在这儿拿winscp举个例子。 Fig 5. winscp的登陆页面 我划掉的地方除了我这个地方因为是搞计算物理用SFTP协议就够了传文件就行速度快都是你需要输入的地方。比如你的学校的ip端口号你的用户名和密码等。只要连上这个你就可以舒舒服服的躺在家里的床上给实验室工作或者在五星级酒店的酒吧里喝着苏格兰威士忌听着美国的乡村音乐给实验室工作顺便给waiter小哥哥或者waitress小姐姐介绍一下你的工作或者在南太平洋的船上连着wifi给实验室工作或者在大堡礁玩潜水的时候还不忘给学校的机子上提交一个小程序跑一跑。你烧砖哥怎么这么门清儿呢因为你烧砖哥都干过。这样你就可以不用去实验室了。
而且干活我们还可以更卷一点
添加图片注释不超过 140 字可选 添加图片注释不超过 140 字可选 打开这个app他是这个样子
添加图片注释不超过 140 字可选 然后是 添加图片注释不超过 140 字可选 基本上可以帮助解决所有问题。