# LibDL-LibTorch **Repository Path**: kanderWall/LibDL-LibTorch ## Basic Information - **Project Name**: LibDL-LibTorch - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-11 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Lib-LibDL ## 前言 本项目旨在构建一个通用的基于Java语言的深度学习模架。深度学习已经成为业界热门的主题词,其业务应用已经从语音识别、计算机视觉扩展到自然语言处理等诸多领域。同时,也涌现了不少颇具影响力的深度学习框架,如Tensorflow、PyTorch等。但是,基于Java语言的深度学习框架相对较少,而业界也有相当的业务需求。 ## 环境配置 ### Libtorch版本 目前已经支持1.3~1.5的所有版本 建议使用1.5版本 由于Libtirch **1.3.0** 相比于 **1.2.0** 有不兼容的API的更改,因此推荐使用的 Libtorch 最小版本为 **1.3.0**。不推荐使用 **1.2.0** ,可能会出现异常。 下载地址: 选择 Stable -> Linux -> LibTorch -> c++ -> cxx11 ABI version 是否选择Cuda版本取决于系统环境。 ### 系统需求 | 项目 | 最低需求 | 备注 | | :--: | :------------------------------------: | :----------------------: | | 系统 | 任意Linux发行版(Windows目前暂不支持) | 建议使用Ubuntu 19.04 | | 内存 | 8.0GB | 建议16.0GB以上 | | 显卡 | 无 | 建议支持cuda的Nvidia显卡 | ### 依赖 | 工具 | 最小版本 | 是否必需 | 备注 | | :------: | :----------: | :------: | :-------------------------------------------------------: | | boost | ~ | 是 | 可以更高 | | Java | openjdk8u212 | 是 | 可以更高,可以选择OracleJDK | | cmake | 3.12 | 是 | 可以更高(3.12+),如果使用CLion,CLion自带cmake | | CUDA | 10.0 | 否 | 可以更高,是否需要取决于是否需要显卡加速 | | gcc | 8.2 | 是 | 编译c++库所需编译器,可以选择其他编译器,但不保证编译通过 | | gradle | 5.4 | 是 | 可以更高 | | libtorch | 1.3.0 | 是 | 可以更高,依据电脑配置选择是否使用cuda版本 | | OpenMP | ~ | 否 | 一般GCC会自带OpenMP库 | | swig | 4.0.0 | 是 | 可以更高 | **~** 标注代表不要求最低版本,建议使用最新版 ### CMake参数设置 #### 所需参数 - LIBTORCH_PATH libtorch的解压路径,以'/libtorch'或'/libtorch/share/cmake/Torch'为止 - JAVA_PATH (optional) JDK路径,当无法自动找到JNI时才被要求 - USE_CUDA 是否支持Cuda #### 配置方法 ##### CommendLion/CLion 添加参数如下: ```cmake -DLIBTORCH_PATH=/home/nya-chu/DL/libtorch -DUSE_CUDA=ON [-DJAVA_PATH="your path"] ``` ##### CMake-gui 直接在界面中填写或勾选相关选项 -> Configure -> Generate。 ## 开发构建 Java库使用要求前置编译C++工程 ### CLion 在settings -> Build,Execution,Deployment -> CMake中添加Release模式,然后Build。 ### 命令行 ```shell cd /libtorch/cpp mkdir ./build cd ./buiild && cmake && make -j4 ``` ## 已知问题 ### StdVectorLong 由于swig在Linux上的bug问题,该容器实际存储的是Integer而非Long ### windows 当前配置环境下Window系统会编译失败,如若有Windows需求,建议使用WSL(Windows Sub Linux)编译。