@@ -173,15 +173,15 @@ end function
173
173
! Softmax
174
174
!==================================================
175
175
#:for rk, rt in REAL_KINDS_TYPES
176
- pure function Softmax_r1_${rk}$( x ) result( y )
176
+ pure module function Softmax_r1_${rk}$( x ) result( y )
177
177
${rt}$, intent(in) :: x(:)
178
178
${rt}$ :: y(size(x))
179
179
180
180
y = exp(x - maxval(x))
181
181
y = y / sum(y)
182
182
end function
183
183
184
- pure function Softmax_r2_${rk}$( x , dim ) result( y )
184
+ pure module function Softmax_r2_${rk}$( x , dim ) result( y )
185
185
${rt}$, intent(in) :: x(:,:)
186
186
${rt}$ :: y(size(x,dim=1),size(x,dim=2))
187
187
@@ -201,7 +201,7 @@ pure function Softmax_r2_${rk}$( x , dim ) result( y )
201
201
end if
202
202
end function
203
203
204
- pure function Softmax_r3_${rk}$( x , dim ) result( y )
204
+ pure module function Softmax_r3_${rk}$( x , dim ) result( y )
205
205
${rt}$, intent(in) :: x(:,:,:)
206
206
${rt}$ :: y(size(x,dim=1),size(x,dim=2),size(x,dim=3))
207
207
@@ -221,7 +221,7 @@ pure function Softmax_r3_${rk}$( x , dim ) result( y )
221
221
end if
222
222
end function
223
223
224
- pure function Softmax_r4_${rk}$( x , dim ) result( y )
224
+ pure module function Softmax_r4_${rk}$( x , dim ) result( y )
225
225
${rt}$, intent(in) :: x(:,:,:,:)
226
226
${rt}$ :: y(size(x,dim=1),size(x,dim=2),size(x,dim=3),size(x,dim=4))
227
227
@@ -241,15 +241,15 @@ pure function Softmax_r4_${rk}$( x , dim ) result( y )
241
241
end if
242
242
end function
243
243
244
- pure function Softmax_grad_r1_${rk}$( x ) result( y )
244
+ pure module function Softmax_grad_r1_${rk}$( x ) result( y )
245
245
${rt}$, intent(in) :: x(:)
246
246
${rt}$ :: y(size(x))
247
247
248
248
y = Softmax(x)
249
249
y = y * (1._${rk}$ - y)
250
250
end function
251
251
252
- pure function Softmax_grad_r2_${rk}$( x , dim ) result( y )
252
+ pure module function Softmax_grad_r2_${rk}$( x , dim ) result( y )
253
253
${rt}$, intent(in) :: x(:,:)
254
254
${rt}$ :: y(size(x,dim=1),size(x,dim=2))
255
255
@@ -262,7 +262,7 @@ pure function Softmax_grad_r2_${rk}$( x , dim ) result( y )
262
262
y = y * (1._${rk}$ - y)
263
263
end function
264
264
265
- pure function Softmax_grad_r3_${rk}$( x , dim ) result( y )
265
+ pure module function Softmax_grad_r3_${rk}$( x , dim ) result( y )
266
266
${rt}$, intent(in) :: x(:,:,:)
267
267
${rt}$ :: y(size(x,dim=1),size(x,dim=2),size(x,dim=3))
268
268
@@ -275,7 +275,7 @@ pure function Softmax_grad_r3_${rk}$( x , dim ) result( y )
275
275
y = y * (1._${rk}$ - y)
276
276
end function
277
277
278
- pure function Softmax_grad_r4_${rk}$( x , dim ) result( y )
278
+ pure module function Softmax_grad_r4_${rk}$( x , dim ) result( y )
279
279
${rt}$, intent(in) :: x(:,:,:,:)
280
280
${rt}$ :: y(size(x,dim=1),size(x,dim=2),size(x,dim=3),size(x,dim=4))
281
281
0 commit comments