草庐IT

搭建深度学习环境及跑通Github代码

Double_Black1213 2023-04-03 原文

下载Anaconda:

(此处不建议下载到C盘,后续在此路径下载文件较多)

Anaconda可以理解为一片土壤,我们的环境生长在这一片土壤上

然后在搜索栏里可以找到并打开

可以看到路径的前缀是base,这个可以理解为土壤上的大厅,里面会有不同的小房子,可以下载我们所需的不同安装包

如何创建一个适用于自己项目的环境:

以视频作者的Pix2PixGAN为例

(1).GetStarted:首先是下载代码 

下载:直接在Github上点击这里,有一个download可以下载下来,得到一个压缩包

(2).Install PyTorch

 这里面给了适合不同用户的不同指令

eg.第一个pip user,直接运行后面那个指令即可完成环境的配置

然后我们属于第二种Conda users,看到我们后面的指令

如何运行我们的指令:

用到我们刚刚打开的终端,直接复制粘贴指令到终端

然后发现一个,环境文件没有找到

是因为终端前面的这个路径会决定搜索这个文件的范围 

作者此处把刚刚那个压缩包下载到E盘,那么也就需要修改路径到E盘的对应位置,才可以找到对应文件

直接输E加:即可

 其次修改路径,前面输cd,然后复制路径在cd后面(cd+空格+地址)

 这个时候在运行我们的指令们就可以成功创建环境

 注:下载过程中,可能会遇到下载太慢或者卡着不动的情况,这个时候可以去网上搜索下载清华或中科大的镜像源,只需一条指令

他这里是已经有了环境,可以用些conda的指令来看有哪些环境,我们用conda info --envs

可以看到这里除了有刚刚说的base环境还有下载的pix2pix的环境

于是我们现在要进入这个环境,在终端里进入环境的方式:conda activate+空格+我们的环境名

按下空格后我们会发现路径的前缀会变成我们的环境名

 这就意味着我们接下来的操作都是基于我们的环境运行的

跑代码:

在Github中找到pix2pix的指示,按照它的指示来即可

说下载这个数据集:

此处注意到这个文件的后缀为.sh,判断是基于Linux的命令

 我们可以直接去搜索,此处作者使用everything来搜索

 然后使用记事本打开它

我们在记事本中找到一个网址URL。从上图可以看出 .sh后面是跟一个文件名的,于是我们复制网址的时候是不需要复制后面的文件名的

搜索网址后就可以自行下载想要的训练集,想用哪个就下载哪个

 然后可以看到后面有个target direction,说的是放在datasets里面

 所以我们可以手动的随便下载一个训练集,把它下载下来之后,解压后放进datasets文件夹里面,这就相当于我们手动操作代替了下载数据集后面那一行指令的操作【

【此处插入一个小话题,就是这句话:想要看到这个结果的损害函数,可以先运行这个命令,再去打开后面的网址,正常的是It‘s Alive,若有异常,则是visdom插件的问题,可自行上博客搜索

接下来是Train a model,运行这个指令:按理说也是在小黑窗进行运行的,但这里会有一个问题,如果遇到代码问题,是没有办法进行查看的

 所以这里需要一个pycharm,来对python代码进行查看和修改,然后依赖于Anaconda里下载的压缩包把查看和修改后的python语言转化为机器语言

直接把项目文件拖到pycharm图标上就可以打开python代码哦!

然后如果我们需要根据不同的代码来搭配不同的环境,在pycharm里面设置:

1.File的setting里面,找到python interpreter

 2.在这里寻找环境

3.找到conda环境(我们是基于conda建立的环境),并点击existing environment

 4.点击三个点,选择文件夹路径

5. E盘找到安装Anaconda的地方,envs文件夹里面有所有创建的环境,点击就可以添加环境到pycharm上面

 

配置好pycharm环境后,我们就可以在这里输入命令了,当我们把文件直接拖到pycharm并打开时,可以在下面看到一个terminal的选项

 点进去之后,就可以自动的把路径切换成项目文件夹所在的地方,接下来就可以复制粘贴我们剩下来的代码到这里回车运行

然后我们可以看到这个数据集的名字,如果我们改变名字,也就可以更改我们的训练集

比如将facades改成mapes,而文件夹里又正好有这个名字的文件的话,网络就回去训练mapes的变化,若想训练自己的gan网络的话也同样,同时,我们也可以在上述visdom插件里看到损失函数的变化值和训练的结果。

有关搭建深度学习环境及跑通Github代码的更多相关文章

  1. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  2. ruby-on-rails - Rails 源代码 : initialize hash in a weird way? - 2

    在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has

  3. ruby-on-rails - 浏览 Ruby 源代码 - 2

    我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru

  4. ruby - 模块嵌套代码风格偏好 - 2

    我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的

  5. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  6. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  7. ruby - Net::HTTP 获取源代码和状态 - 2

    我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur

  8. 程序员如何提高代码能力? - 2

    前言作为一名程序员,自己的本质工作就是做程序开发,那么程序开发的时候最直接的体现就是代码,检验一个程序员技术水平的一个核心环节就是开发时候的代码能力。众所周知,程序开发的水平提升是一个循序渐进的过程,每一位程序员都是从“菜鸟”变成“大神”的,所以程序员在程序开发过程中的代码能力也是根据平时开发中的业务实践来积累和提升的。提高代码能力核心要素程序员要想提高自身代码能力,尤其是新晋程序员的代码能力有很大的提升空间的时候,需要针对性的去提高自己的代码能力。提高代码能力其实有几个比较关键的点,只要把握住这些方面,就能很好的、快速的提高自己的一部分代码能力。1、多去阅读开源项目,如有机会可以亲自参与开源

  9. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  10. 7个大一C语言必学的程序 / C语言经典代码大全 - 2

    嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来

随机推荐