系统需求

Linux系统,并已安装git、gcc、g++、cmake⼯具

下载源码

  1. 从github克隆Pytorch仓库
git clone --recursive https://github.com/pytorch/pytorch
  1. 如果已经克隆过,则使⽤以下命令更新
git submodule sync
git submodule update --init --recursive
  1. 如⽆法更新⼦模块,则需要⼿动克隆⼦模块仓库

(1)进⼊pytroch源码⽬录下的 third_party ⽬录,查看未克隆成功的⼦模块,如gloo
(2)删除该⼦模块⽬录
(3)在https://github.com/pytorch/pytorch/tree/master/third_party处找到响应的⼦模块,并点击进 ⼊相应的仓库,并使⽤git克隆到third_party⽬录下,如

git clone https://github.com/facebookincubator/gloo.git

(4)重复以上操作直到third_party⽬录下所有⼦模块克隆成功

编译环境

Android NDK

通过Android studio安装相应的sdk:⼯具->SDK Manager->SDK Platforms

设置环境变量 ANDROID_HOME 为SDK安装⽬录(如上图中的Android SDK Location )
通过Android studio安装相应的ndk:⼯具->SDK Manager->SDK Tools

设置环境变量 ANDROID_NDK 为NDK安装⽬录(⼀般在SDK安装⽬录下的ndk⽬录下)

Gradle

(1)从https://gradle.org/releases/下载相应版本(如v6.8.3)的gradle压缩包并解压
(2)设置环境变量 GRADLE_HOME 为解压后的gradle⽬录
(3)在环境变量 PATH 中添加gradle⽬录下的bin ⽬录

JDK8

(1)从https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html下载对应系统的JDK并安装
(2)设置环境变量 JAVA_HOME 为Java安装⽬录
(3)在环境变量 PATH 中添加java安装⽬录下的bin ⽬录

编译Pytorch for Android

获取模型运算符⽂件

(1)运⾏Reversi 项⽬中Predictor 类的save_script ⽅法,⽣成模型对应的运算符⽂件predictor.yaml
(2)将模型⽂件 predictor.yaml 复制到pytorch⽬录下

编译

(1)在pytorch⽬录下运⾏以下命令⽣成aar⽂件

SELECTED_OP_LIST=predictor.yaml scripts/build_pytorch_android.sh x86

(2)命令参数x86 代表构建的Android ABI,可选的ABI有:x86、x86_64、armeabi-v7a、arm64- v8a
(3)若编译成功,将在pytorch/android/pytorch_android/build/outputs/arr下找到pytorch_android- release.arr ⽂件

使⽤编译后的aar⽂件

(1)在Android项⽬的app⽂件夹下新建libs ⽬录,并复制pytorch_android-release.aar 到此⽂件夹下
(2)在项⽬的build.gradle配置⽂件夹中添加以下内容:

repositories { flatDir { dirs 'libs' }jcenter()
}

在build.gradle配置⽂件中的dependencies下添加aar⽂件,并注释掉之前使⽤的pytorch,如:

dependencies { implementation 'androidx.appcompat:appcompat:1.1.0' api(name: 'pytorch_android-release', ext: 'aar') // implementation 'org.pytorch:pytorch_android:1.8.0' implementation 'junit:junit:4.12' implementation 'com.alibaba:fastjson:1.1.70.android'
}

参考链接

https://pytorch.org/mobile/android/
https://zhuanlan.zhihu.com/p/299736532

黑白棋游戏水平(2)--pytorch剪裁相关推荐

  1. c语言课程设计之黑白棋游戏,c语言课程设计黑白棋游戏.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp学术论文&nbsp>&nbsp大学论文 c语言课程设计黑白棋游戏.doc26页 本文档一共被 ...

  2. C++ 黑白棋游戏的实现

    时光荏苒..眨眼间半年过去了.半年间我的人生轨迹经历了重大的改变.我最终还是决定把我在去年暑假里实现的这个C++的黑白棋游戏发布在我的CSDN博客上.这或许是我写的最后一个C++程序了. 记得当时,7 ...

  3. 黑白棋游戏 (BFS + 位运算初步运用)

    题目描述   黑白棋游戏的棋盘由4×4方格阵列构成.棋盘的每一方格中放有1枚棋 子,共有8枚白棋子和8枚黑棋子.这16枚棋子的每一种放置方案都构成一个游戏状态.在棋盘上拥有1条公共边的2个方格称为相邻 ...

  4. Visual C++实现黑白棋游戏实战三:核心算法设计与实现(附源码和资源 可用于大作业)

    需要源码和资源请点赞关注收藏后评论区留言私信~~~ 在前面的博客中已经讲解了黑白棋游戏的菜单和各种对话框的实现,下面将对黑白棋游戏的核心算法的设计和实现进行讲解 一.棋盘窗口类的设计 黑白棋的棋盘窗口 ...

  5. c语言大作业黑白棋,C语言编写黑白棋游戏源代码.doc

    C语言编写的黑白棋游戏源代码 /*3.3.4 源程序*/ #include "graphics.h" /*图形系统头文件*/ #define LEFT 0x4b00 /*光标左键值 ...

  6. 【Python案例】基于Pygame黑白棋游戏(附源码)

    有没有小火伴是特别喜欢玩五子棋的,我记得我初中是特别喜欢的.于是,我今天就用Python给大家写了一个黑白棋游戏.代码放在下面了. 01.绘制棋盘 Python学习交流Q群:906715085### ...

  7. html5怎么判断迷宫输赢,HTML5 实现黑白棋游戏|附代码

    2)初始化游戏界面 游戏开始时,init()对保存棋盘上的棋子信息的qizi数组初始化,同时在棋盘上显示初始的4个棋子. function init(){             initLevel( ...

  8. P3084 黑白棋游戏

      P3084 黑白棋游戏 时间: 1000ms / 空间: 65536KiB / Java类名: Main 描述 黑白棋游戏的棋盘由4×4方格阵列构成.棋盘的每一方格中放有1枚棋子,共有8枚白棋子和 ...

  9. 基于Python的Reversi黑白棋游戏设计与开发

    摘 要 黑白棋是一个相当易学,而且很受欢迎的游戏.近年来,随着机器性能的提高和相关理论的完善,人工智能这一领域变得越来越重要,在实际生活中的运用也越来越广泛.为了学习简单的人工智能,我决定用Pytho ...

最新文章

  1. iOS下的 Fixed BUG
  2. 分布式架构知识体系必读
  3. Direct交换器-编写消费者
  4. 真相了!敲代码时,程序员戴耳机究竟在听什么?
  5. 安装python3 及virtual与virtualenvwrapper
  6. 如何将Eclipse中的开源项目使用到Android Studio中
  7. java学习(177):获取应用程序的路径
  8. python学习之数据类型(int,bool,str)
  9. 揭秘手机行业未来AI之路
  10. $Django 聚合函数、分组查询、F,Q查询、orm字段以及参数
  11. WordPress Platinum SEO插件跨站脚本漏洞
  12. Yii2 使用 faker 生成假数据(转)
  13. 微信朋友圈千亿访问量背后的技术挑战和实践总结
  14. flash builder java_FlashBuilder4 与 Java 的交互调用(blazeds服务端)
  15. BZOJ1001: [BeiJing2006]狼抓兔子
  16. Windows7开机加速全攻略五:系统服务优化
  17. java实现统计pv和uv_shell统计pv与uv、独立ip的方法
  18. 搭建通过路由器连接到光猫的服务器
  19. 基本类型和包装类型的区别详解
  20. c语言str相关的函数

热门文章

  1. php红色字体颜色,php生成文字颜色渐变 高级用法
  2. 通过数组和枚举简化GPIO操作编码
  3. arm32和arm64常用指令B BL BLX机器码计算
  4. HA集群实现原理 切换 JAVA_HA(一)高可用集群原理
  5. Linux的实际操作:给Linux添加一块新硬盘
  6. python中list是什么类型_Python中的list数据类型
  7. oracle导入substring,java中substring()和oracle中substr()区别
  8. iptables 指定网卡_LINUX系统下的IPTABLES防火墙系统讲解(二)实战操作
  9. android camera2 采集,视频采集:Android平台基于Camera 2的实现
  10. 春考天津计算机知识点,天津春季高考计算机模拟试题