环境:vs2017 pytorch1.5 cuda10.1
github地址:https://github.com/feihuzhang/GANet
源码中给出的是在linux下的编译步骤,没提win10的事情,自己搞了下编译通过,记录一下。
首先,源码根目录下的compile.sh文件是给linux准备的,在windows上直接运行的话…,手动搞吧。

编译GANet

首先配置好你的cuda目录,在你的环境变量中设置好CUDA_PATH,然后打开你的cmd

cd GANet\libs\GANet
python setup.py build

不出意外你将得到一堆信息,最后的两行大概这样:

4 errors detected in the compilation of "C:/Users/zzubq/AppData/Local/Temp/tmpxft_00004958_00000000-10_GANet_kernel.cpp1.ii".
error: command 'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.1\\bin\\nvcc.exe' failed with exit status 1

将编译的信息拷贝到nodepad++中,直接查找"error",可以找到如下信息:

C:/Users/zzubq/Anaconda3/lib/site-packages/torch/include\torch/csrc/jit/api/module.h(474): error: member "torch::jit::detail::ModulePolicy::all_slots" may not be initializedC:/Users/zzubq/Anaconda3/lib/site-packages/torch/include\torch/csrc/jit/api/module.h(487): error: member "torch::jit::detail::ParameterPolicy::all_slots" may not be initializedC:/Users/zzubq/Anaconda3/lib/site-packages/torch/include\torch/csrc/jit/api/module.h(501): error: member "torch::jit::detail::BufferPolicy::all_slots" may not be initializedC:/Users/zzubq/Anaconda3/lib/site-packages/torch/include\torch/csrc/jit/api/module.h(514): error: member "torch::jit::detail::AttributePolicy::all_slots" may not be initialized

可以看到都是module.h出的错误,打开这个文件,将文件中所有的"constexpr"改成”const",可以使用nodepad++的全部替换功能,比如:

static constexpr bool all_slots = Policy::all_slots;
修改成:
static const bool all_slots = Policy::all_slots;

然后修改cast.h这个文件,路径:{你的python路径}\Lib\site-packages\torch\include\pybind11\cast.h,1449行

explicit operator type&() { return *(this->value); }
修改成:
explicit operator type&() { return *((type*)this->value); }

保存退出,然后再去重新执行:

python setup.py build

等待完成,然后在libs\GANet\build下新建一个名为"lib"的文件夹,将刚才编译出来的“lib.win-amd64-3.70”文件夹下的内容全部拷贝到lib文件夹下,完成后目录结构如下:

这两步其实就是compile.sh中的

cp -r build/lib* build/lib

编译sync_bn

根据上述的操作都已经改好了,所以直接运行即可

cd libs/sync_bn
python setup.py build

然后同样新建一个"lib"文件夹,拷贝过去,完成后目录结构如下:

到这里就都编译好了,作者还提到安装apex,如果运行的时候没有碰到BN error的错误,就不用折腾了。
现在就可以直接按照作者给出的命令运行了,不过(表 重点)运行的话需要你的显存大于6.5G,硬性要求!如果你的显存比较可怜,可以将predict.py中的

parser.add_argument('--model', type=str, default='GANet_deep', help="model to train")
改成:
parser.add_argument('--model', type=str, default='GANet11', help="model to train")

也可以试试将参数中的cuda改成False,不过大概率的你会得到另外的错误,比如:

TypeError: batchnorm_forward(): incompatible function arguments. The following argument types are supported:

别问我怎么知道的,也别问我怎么解决。问就是“换一块显存大于6.5G的GPU”,CPU真的折腾不起,搞不定!(伤害性不大,侮辱性极强。我不会告诉你,今天为了这个受到了100000点的伤害 /哭)

win10下编译GANet相关推荐

  1. 微信小程序开发工具win10下编译非常慢解决方法

    微信小程序开发工具win10下编译非常慢的解决方法 点击微信小程序开发工具右侧详情,在本地设置中将[启用多核心编译]选项去掉,开发工具重启即可

  2. win10下编译OpenCV的微信二维码库给Dotnet使用

    文章目录 前言 一.编译OpenCV和opencv_contrib 二.制作Dotnet可以调用的dll 第一步:创建C++空项目并添加一个类 第二步:配置OpenCV环境 第三步:将C++代码编译成 ...

  3. FMT(基于rtthread)开源代码编译 win10下编译环境搭建及编译

    FMT(基于rtthread)开源代码编译 win10下编译环境搭建及编译 什么是Firmament? Firmament (FMT) 是一款基于模型设计 (Model-Based-Design, M ...

  4. win10下编译安装ncnn

    win10下编译安装ncnn 第一步 自行安装VS2017.CMake软件. Cmake可以在网盘自取: 链接:https://pan.baidu.com/s/16w_ZVHDb4_y-56WmDHM ...

  5. win10下编译和使用mnn 2021

    mnn版本1.2.0 Ubuntu子系统下Android编译教程,亲测ok: MNN编译android_jacke121的专栏-CSDN博客 编译转换工具: mnn 编译转换工具 win10 2021 ...

  6. 【Poco学习笔记】Poco库win10下编译(超详细,小白都能看得懂)

    目录 前言 一.前期准备 1.1 安装Openssl 1.2 下载Poco的源码 二.编译源码 三.报错 3.1 Foundation_vs160找不到Windows SDK版本8.1 3.1.1 报 ...

  7. win10下编译C代码:cmd 命令行 + notepad 记事本

    使用 windows 也能使用gcc编译.方法如下: 下载安装 gcc 简单的,就是下载一个 perl 环境,自动配好 gcc. https://strawberryperl.com/ 默认安装好即可 ...

  8. Win10下编译Android Ogre3d 1.12.6

    Ogre编译环境所需配置: 1.Android NDK版本16 2.Android Stuido 3.3 3.Java版本jdk1.8.0_131 4.CMake 3.16.0-rc3 5.Pytho ...

  9. win10下nodejs内存泄漏查找工具node-heapdump和node-memwatch的安装

    最近在看<深入浅出Node.js>,看到了第5章提到的node-heapdump和node-memwatch内在泄漏查找工具,我就尝试在win10下安装和使用一下,觉得有必要总结一下. n ...

  10. Win10 下Visual Studio 2017源码编译Paddle

    Win10 下Visual Studio 2017源码编译Paddle 1.准备工作 Visual Studio 2017 Python 3.8.10 CMake 3.22.0-rc2 熟悉官方文档: ...

最新文章

  1. C++/C++11中左值、左值引用、右值、右值引用的使用
  2. R语言-常用对象及元素类型
  3. 5款没有专利纠葛的Linux发行版
  4. 操作系统第一篇【引论】
  5. node-sass -v 不是内部_奔驰v260领航版的缺点奔驰v级和威霆区别
  6. 【疼逊】致广大QQ用户的一封信
  7. oracle rownum 特别慢,select * from table where rownum=1怎么会特别慢??表的数据在千万左右...
  8. 2018.10.24 NOIP模拟 小 C 的序列(链表+数论)
  9. nodejs对mongodb数据库的增删改查操作(转载)
  10. caffe新手常遇到的三个问题
  11. pycharm打开脚本报错Gtk-Message: Failed to load module canberra-gtk-module
  12. python3多进程执行循环_Python3 并发编程之多进程(一)
  13. 使用VC开发的一个简单工作日志软件
  14. 网络没有运行wmi服务器,win7系统中没有wmi服务如何解决_win7没有wmi服务的解决方法...
  15. CSGO显示FPS(帧数)指令集设置调用方法 2020年最新版本CSGO教程
  16. javaFX,Scene Builder引入Jfoenix
  17. MySQL数据库中库、表名、字段的大小写问题
  18. 对团队中“这是某某某的问题”引起的思考
  19. postgre导入dmp文件
  20. 芯片验证漫游指南 pdf_更好地认识PDF 文件

热门文章

  1. 上市公司高管CEO员工数据大全 1991-2021年上市公司高管CEO教育背景学历结构薪酬职务任期年龄出生地 员工学历结构人员结构
  2. fedora 主题美化
  3. 【STM32+cubemx】0029 HAL库开发:HMC5883L磁力计的应用(电子指南针)
  4. 记录下Gradle化Android Gallery3D应用的过程
  5. 某中学校校园网络方案设计(课程设计)
  6. Android各控件Demo下载地址
  7. 百度开源的 71 个项目,你用过几个 ?
  8. API函数简介 转自洪恩在线
  9. html鼠标自动点击代码,网上学习鼠标10分钟自动点击 按键精灵使用设置方法 脚本编辑...
  10. Android Studio 利用系统签名打包apk