GLSL層卷積(寬 高 輸出通道數)(計算單位數)

2021-10-24 17:56:52 字數 1040 閱讀 8491

增加計算單位數,可以加快計算速度。

計算單位 從 iwidth * iheight 增加到 iwidth * iheight * outnum:

mnumgroupsx = iwidth;

int xsize = iheight;

mnumgroupsy = outnum;

mnumgroupsz = 1;//innum;

if (iheight > 1024)

printf("高度太大,不支援\n");

else

textureparameters.shader_source = shadersource(xsize, 1);

著 色器:

#version 430 core

layout (local_size_x = local_size_x, local_size_y = local_size_y, local_size_z = 1) in;

uniform int w;

uniform int h;

//輸入

uniform int innum;

//輸出

uniform int outnum;

//偏置

uniform float bias[64];

//啟用

uniform int active;

// 傳遞卷積核

uniform int kw;

layout(std430, binding = 0) buffer bufferobject

;void main(void)

k_index++;

}} }

fsum += bias[o];//加偏置

//relu啟用

if (active == 1)

fsum = (fsum > 0.0) ? fsum : 0.0;//

all[o*wh + iy*w + ix] = fsum;

}

其它同前一文。

結束。

GLSL層卷積(紋理陣列)

在 opengl 紋理陣列 一文中看到紋理陣列只用乙個紋理物件就可以載入多個通道資料。在層卷積中能減少著色器執行次數。把輸入的多通道資料載入乙個紋理陣列中 int loadgltextures arrayg float ptexdata,int num 層卷積 核資料,核寬,輸入維度,輸出維度,偏置...

GLSL層卷積(快取物件)

在第11課 11.2 01bufferobject 中講了 著色器可以對 快取物件 讀寫。我們的層卷積中,也用乙個 快取物件 傳送全部卷積核,並 卷積結果 前半部分結果,後半部分核 核資料,核寬,輸入維度,輸出維度,偏置資料,輸入資料,輸出資料,是否啟用 核大小 kw kw 輸入維度 輸出維度。輸入...

卷積層以及池化層的輸出維度

一 輸入的四個維度 2 height weight 的高和寬。3 channels 的通道數,黑白 就是1,rgb就是3。例如我們的輸入是x 333,28,28,3 則代表我們有333個寬和高都是28的黑白 單通道 二 卷積核的四個維度 1 height weight 卷積核矩陣的維度 2 inch...