# Deeplearning4j **Repository Path**: naclnezn/deeplearning4j ## Basic Information - **Project Name**: Deeplearning4j - **Description**: DeepLearning4J(DL4J)是一套基于Java语言的神经网络工具包,可以构建、定型和部署神经网络 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-08-16 - **Last Updated**: 2025-09-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # deeplearning4j ## deeplearning4j ### 介绍 DeepLearning4J(DL4J)是一套基于Java语言的神经网络工具包, 可以构建、定型和部署神经网络。DL4J与Hadoop和Spark集成,支持分布式CPU和GPU, 为商业环境(而非研究工具目的)所设计。 Skymind是DL4J的商业支持机构。 Deeplearning4j拥有先进的技术,以即插即用为目标,通过更多预设的使用,避免多余的配置, 让非企业也能够进行快速的原型制作。DL4J同时可以规模化定制。DL4J遵循Apache 2.0许可协议,一切以其为基础的衍生作品均属于衍生作品 ### Deeplearning4j的功能 Deeplearning4j包括了分布式、多线程的深度学习框架,以及普通的单线程深度学习框架。 定型过程以集群进行,也就是说,Deeplearning4j可以快速处理大量数据。神经网络可通过[迭代化简]平行定型, 与 Java、 Scala 和 Clojure 均兼容。Deeplearning4j在开放堆栈中作为模块组件的功能,使之成为首个为微服务架构打造的深度学习框架。 ## 训练模型 ### 数据集简介 从MNIST官网下载的原始数据并非图片文件,需要按官方给出的格式说明做解析处理才能转为一张张图片,这些事情显然不是本篇的主题, 因此咱们可以直接使用DL4J为我们准备好的数据集 ### 训练和测试数据集下载 本文使用简单的数子训练集 并在 resource/data 下 需要解压 源下载地址: https://raw.githubusercontent.com/zq2599/blog_download_files/master/files/mnist_png.tar.gz ### LeNet-5 结构 - 输入层 图片大小为 32×32×1,其中 1 表示为黑白图像,只有一个 channel。 - 卷积层 filter 大小 5×5,filter 深度(个数)为 6,padding 为 0, 卷积步长 s=1=1,输出矩阵大小为 28×28×6,其中 6 表示 filter 的个数。 - 池化层 average pooling,filter 大小 2×2(即 f=2=2),步长 s=2=2,no padding,输出矩阵大小为 14×14×6。 - 卷积层 filter 大小 5×5,filter 个数为 16,padding 为 0, 卷积步长 s=1=1,输出矩阵大小为 10×10×16,其中 16 表示 filter 的个数。 - 池化层 average pooling,filter 大小 2×2(即 f=2=2),步长 s=2=2,no padding,输出矩阵大小为 5×5×16。注意,在该层结束,需要将 5×5×16 的矩阵flatten 成一个 400 维的向量。 - 全连接层(Fully Connected layer,FC) neuron 数量为 120。 - 全连接层(Fully Connected layer,FC) neuron 数量为 84。 - 全连接层,输出层 现在版本的 LeNet-5 输出层一般会采用 softmax 激活函数,在 LeNet-5 提出的论文中使用的激活函数不是 softmax,但其现在不常用。该层神经元数量为 10,代表 0~9 十个数字类别。 model 下的 LeNetMNISTReLu.java 为源代码 ## 运行 需要运行一次 【src/main/java/com/nacl/deeplearning4j/model/LeNetMNISTReLu.java】 生成模型 生成结果为: ![1723860380731.png](imgs\1723860380731.png) 在```application.yml``` 里设置```modelpath```模型绝对地址 然后可以进行接口调用了