大数跨境
0
0

卷积层与全连接层的维度转换

卷积层与全连接层的维度转换 豆豆咨询
2026-01-16
0
导读:在深度强化学习中,模型的不同层所处理的数据维度通常是不同的,这就涉及到维度转换了。
    
    在深度强化学习中,模型的不同层所处理的数据维度通常是不同的,这就涉及到维度转换了。以下将介绍卷积层ConvolutionLayer与全连接层DenseLayer的数据维度转换。
一、需要解决的问题:维度不匹配
// 常见错误示例
.layer(0,newConvolutionLayer.Builder(3,3).nOut(32).build())// 输出4D张量
.layer(1,newDenseLayer.Builder().nIn(???)// ❌ 不知道输入维度!
                        .nOut(128).build())
通常卷积层输出是4D张量:

[batch_size, channels, height, width]

或 [batch_size, height, width, channels](取决于数据格式)

全连接层需要2D输入:

[batch_size, features]

二、维度转换的两种方法

方法1:Flatten层(显式展平)

方法2:隐式展平(DL4J自动处理)

三、维度计算的关键公式

1. 卷积层输出尺寸计算

2. 池化层输出尺寸计算

3. Flatten后的特征数量

四、完整计算示例:MNIST分类

输入:28×28灰度图

int height =28;int width =28;int channels =1;// 灰度图int batchSize =64;

网络架构:

五、使用DL4J的自动推断功能

自动计算nIn的方法:

验证维度的方法:


【声明】内容源于网络
0
0
豆豆咨询
提供前沿的信息技术咨询,实用的编程、项目管理方法,优质的专家服务,如PHP、Java、C#、C++、ASP.NET、ThinkPHP、Git、Matlab、图像处理、数据库、云计算、科技论文撰写等。
内容 44
粉丝 0
豆豆咨询 提供前沿的信息技术咨询,实用的编程、项目管理方法,优质的专家服务,如PHP、Java、C#、C++、ASP.NET、ThinkPHP、Git、Matlab、图像处理、数据库、云计算、科技论文撰写等。
总阅读70
粉丝0
内容44