开放代码社区 › 自己打造一个深度学习框架 for java
自己打造一个深度学习框架 for java
AI/机器学习Java简体中文 English 自己打造一个深度学习框架 for java 从2016年开始利用空余时间研究深度学习的方面,由于工作的原因,最熟悉的编程语言就是java,所以框架的编程语言自然而然就使用了java。自己打造框架的初衷就是为了更加深入了解各个算法、模型、实现的原理和思路,同时让java开发者更加容易接触AI领域。 Omega-AI:基于java打造的深度学习框架,帮助你快速搭建神经网络,实现训练或测试模型,支持多GPU训练。
仓库地址
https://gitee.com/dromara/omega-ai.gitREADME

<p align="center">
<b>简体中文</b> | <a href="https://gitee.com/dromara/omega-ai/blob/master/README.en.md">English</a>
</p>
# 自己打造一个深度学习框架 for java
## 前言
从2016年开始利用空余时间研究深度学习的方面,由于工作的原因,最熟悉的编程语言就是java,所以框架的编程语言自然而然就使用了java。自己打造框架的初衷就是为了更加深入了解各个算法、模型、实现的原理和思路,同时让java开发者更加容易接触AI领域。
## 框架介绍
Omega-AI:基于java打造的深度学习框架,帮助你快速搭建神经网络,实现训练或测试模型,支持多GPU训练。框架目前支持BP神经网络、卷积神经网络、循环神经网络、vgg16、resnet、yolo、lstm、transformer、gpt、llama、diffusion、stable diffusion等模型的构建,目前引擎最新版本支持CUDA和CUDNN两种GPU加速方式,关于GPU加速的环境配置与jcuda版本jar包的对应依赖,引擎中所实现的模型和算法除了使用cuda和cudnn相关依赖包之外均不使用任何api和第三方依赖包。欢迎添加QQ群([119593195]())进行技术讨论和交流,别忘了给Omega-AI项目点个star,项目需要你们的支持。
## 官方网站:
[https://oaii.cn](https://oaii.cn)
## 源码地址:
[https://gitee.com/dromara/omega-ai](https://gitee.com/dromara/omega-ai)
[https://github.com/dromara/Omega-AI](https://github.com/dromara/Omega-AI)
[https://gitcode.com/dromara/omega-ai](https://gitcode.com/dromara/omega-ai)
## 依赖
由于omega-engine-v4-gpu加入了jcuda支持,所以omega-engine-v4-gpu需要安装与jcuda版本对应的cuda,如果您的机器安装的CUDA版本是11.7.x,那么对应omega-engine需要引入的jcuda 11.7.0版本。
## 快速开始
##### 1.检查当前CUDA版本
```txt
nvcc --version
```
##### 2.安装CUDA与CUDNN
https://developer.nvidia.com/cuda-toolkit-archive
##### 3.引入或下载与当前CUDA版本对应的omega-engine包
[win-cu-x.x 版本包列表](#版本依赖包)
```xml
<dependency>
<groupId>io.gitee.iangellove</groupId>
<artifactId>omega-engine-v4-gpu</artifactId>
<version>win-cu11.7-v1.0-beta</version>
</dependency>
```
##### 4.初始化GPU环境与释放显存
```java
public static void main(String[] args) {
try {
//初始化GPU环境获取Context对象
CUDAModules.initContext();
CNNTest cnn = new CNNTest();
cnn.cnnNetwork_cifar10();
} finally {
//释放所有显存
CUDAMemoryManager.free();
}
}
```
## 系统参数
由于训练vgg16模型的参数比较庞大,所以在部署项目的时候需要对jvm内存进行调整.
调整事例如:-Xmx20480m -Xms20480m -Xmn10240m
## Demo展示
### Omega-mini-dit(130M参数文生图)
#### [基于dit_b/1+va-vae+clip+repa+sprint+rms](https://gitee.com/dromara/omega-ai#omega-mini-dit%E6%96%87%E7%94%9F%E5%9B%BE)
#### [OmegaDiT pytorch版本:https://github.com/yongchuan/OmegaDiT](https://github.com/yongchuan/OmegaDiT)
注:以下演示图片训练集为2M图文对数据集
|<img src="https://web-code-img.oss-cn-shanghai.aliyuncs.com/readme/aa7a563542568bcf61c9f94f.png" height="200px" width="200px" style="object-fit: contain;"/> |<img src="https://web-code-img.oss-cn-shanghai.aliyuncs.com/readme/98651fd4d8e377fc114950b1.png" height="200px" width="200px" style="object-fit: contain;"/> | <img src="https://web-code-img.oss-cn-shanghai.aliyuncs.com/readme/ae1f9d8974e1acf41a5d0637.png" height="200px" width="200px" style="object-fit: contain;"/> | <img src="https://web-code-img.oss-cn-shanghai.aliyuncs.com/readme/b17eb42d435f78c419396214.png" height="200px" width="200px" style="object-fit: contain;"/> |
|---|---|---|---|
| A cat | A dog | A cat holding a sign that says hello world | A lovely corgi is taking a walk under the sea |
|||||
| a highly detailed anime landscape,big tree on the water, epic sky,golden grass,detailed | vibrant anime mountain lands | a car runing on the sand. |fruit cream cake |
|||||
| a highly detailed anime sexy beauty |a girl wearning a white dress standing under the apple tree |beautiful girl with hair flowing like a cascading waterfail |A beautiful girl with golden hair, cool and sunny|
|||||
|cyberpunk panda is taking a walk on the street|Happy dreamy owl monster sitting on a tree branch, colorful glittering particles, forest background, detailed feathers.|Half human, half robot, repaired human|Game-Art - An island with different geographical properties and multiple small cities floating in space|
### 卷积神经网络系列
#### [基于卷积神经网络mnist手写数字识别](http://120.237.148.121:8011/mnist)

### yolo目标识别算法系列
#### [基于yolo算法目标追踪识别](#yolo-car-tracker-deepsort-demo)

#### [基于yolov3口罩佩戴识别](#yolov3-mask-demo口罩佩戴识别)

#### [基于yolov3安全帽佩戴识别](#yolov3-helmet-demo安全帽佩戴识别)
![输入图片说明](https://web-code-img.oss-cn-shanghai.