Skip to content

Commit d41ba7b

Browse files
Riccardo OrsiRiccardo Orsi
authored andcommitted
Poolings finished
1 parent d9b4070 commit d41ba7b

12 files changed

+215
-513
lines changed

CMakeLists.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ add_library(neural-fortran
2121
src/nf/nf_avgpool1d_layer_submodule.f90
2222
src/nf/nf_avgpool2d_layer.f90
2323
src/nf/nf_avgpool2d_layer_submodule.f90
24-
src/nf/nf_avgpool3d_layer.f90
25-
src/nf/nf_avgpool3d_layer_submodule.f90
2624
src/nf/nf_base_layer.f90
2725
src/nf/nf_conv1d_layer.f90
2826
src/nf/nf_conv1d_layer_submodule.f90
@@ -61,8 +59,6 @@ add_library(neural-fortran
6159
src/nf/nf_maxpool1d_layer_submodule.f90
6260
src/nf/nf_maxpool2d_layer.f90
6361
src/nf/nf_maxpool2d_layer_submodule.f90
64-
src/nf/nf_maxpool3d_layer.f90
65-
src/nf/nf_maxpool3d_layer_submodule.f90
6662
src/nf/nf_metrics.f90
6763
src/nf/nf_multihead_attention.f90
6864
src/nf/nf_multihead_attention_submodule.f90

src/nf.f90

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ module nf
55
use nf_layer_constructors, only: &
66
avgpool1d, &
77
avgpool2d, &
8-
avgpool3d, &
98
conv1d, &
109
conv2d, &
1110
dense, &
@@ -18,7 +17,6 @@ module nf
1817
locally_connected1d, &
1918
maxpool1d, &
2019
maxpool2d, &
21-
maxpool3d, &
2220
reshape, &
2321
self_attention
2422
use nf_loss, only: mse, quadratic

src/nf/nf_avgpool3d_layer.f90

Lines changed: 0 additions & 67 deletions
This file was deleted.

src/nf/nf_avgpool3d_layer_submodule.f90

Lines changed: 0 additions & 102 deletions
This file was deleted.

src/nf/nf_layer_constructors.f90

Lines changed: 1 addition & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ module nf_layer_constructors
1111
public :: &
1212
avgpool1d, &
1313
avgpool2d, &
14-
avgpool3d, &
1514
conv1d, &
1615
conv2d, &
1716
dense, &
@@ -22,7 +21,6 @@ module nf_layer_constructors
2221
locally_connected1d, &
2322
maxpool1d, &
2423
maxpool2d, &
25-
maxpool3d, &
2624
reshape, &
2725
self_attention, &
2826
embedding, &
@@ -227,28 +225,6 @@ module function avgpool2d(pool_size, stride) result(res)
227225
!! Resulting layer instance
228226
end function avgpool2d
229227

230-
module function avgpool3d(pool_size, stride) result(res)
231-
!! 3-d avgpooling layer constructor.
232-
!!
233-
!! This layer is for downscaling other layers, typically `conv3d`.
234-
!!
235-
!! Example:
236-
!!
237-
!! ```
238-
!! use nf, only :: avgpool3d, layer
239-
!! type(layer) :: avgpool3d_layer
240-
!! avgpool3d_layer = avgpool3d(pool_size=2)
241-
!! avgpool3d_layer = avgpool3d(pool_size=2, stride=3)
242-
!! ```
243-
integer, intent(in) :: pool_size
244-
!! Width of the pooling window, commonly 2
245-
integer, intent(in), optional :: stride
246-
!! Stride of the pooling window, commonly equal to `pool_size`;
247-
!! Defaults to `pool_size` if omitted.
248-
type(layer) :: res
249-
!! Resulting layer instance
250-
end function avgpool3d
251-
252228
module function conv1d(filters, kernel_size, activation) result(res)
253229
!! 1-d convolutional layer constructor.
254230
!!
@@ -373,29 +349,7 @@ module function maxpool2d(pool_size, stride) result(res)
373349
type(layer) :: res
374350
!! Resulting layer instance
375351
end function maxpool2d
376-
377-
module function maxpool3d(pool_size, stride) result(res)
378-
!! 3-d maxpooling layer constructor.
379-
!!
380-
!! This layer is for downscaling other layers, typically `conv3d`.
381-
!!
382-
!! Example:
383-
!!
384-
!! ```
385-
!! use nf, only :: maxpool3d, layer
386-
!! type(layer) :: maxpool3d_layer
387-
!! maxpool3d_layer = maxpool3d(pool_size=2)
388-
!! maxpool3d_layer = maxpool3d(pool_size=2, stride=3)
389-
!! ```
390-
integer, intent(in) :: pool_size
391-
!! Width of the pooling window, commonly 2
392-
integer, intent(in), optional :: stride
393-
!! Stride of the pooling window, commonly equal to `pool_size`;
394-
!! Defaults to `pool_size` if omitted.
395-
type(layer) :: res
396-
!! Resulting layer instance
397-
end function maxpool3d
398-
352+
399353
module function linear2d(out_features) result(res)
400354
!! Rank-2 (sequence_length, out_features) linear layer constructor.
401355
!! sequence_length is determined at layer initialization, based on the

src/nf/nf_layer_constructors_submodule.f90

Lines changed: 0 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
use nf_layer, only: layer
44
use nf_avgpool1d_layer, only: avgpool1d_layer
55
use nf_avgpool2d_layer, only: avgpool2d_layer
6-
use nf_avgpool3d_layer, only: avgpool3d_layer
76
use nf_conv1d_layer, only: conv1d_layer
87
use nf_conv2d_layer, only: conv2d_layer
98
use nf_dense_layer, only: dense_layer
@@ -15,7 +14,6 @@
1514
use nf_locally_connected1d_layer, only: locally_connected1d_layer
1615
use nf_maxpool1d_layer, only: maxpool1d_layer
1716
use nf_maxpool2d_layer, only: maxpool2d_layer
18-
use nf_maxpool3d_layer, only: maxpool3d_layer
1917
use nf_reshape2d_layer, only: reshape2d_layer
2018
use nf_reshape3d_layer, only: reshape3d_layer
2119
use nf_linear2d_layer, only: linear2d_layer
@@ -200,36 +198,6 @@ module function avgpool2d(pool_size, stride) result(res)
200198

201199
end function avgpool2d
202200

203-
204-
module function avgpool3d(pool_size, stride) result(res)
205-
integer, intent(in) :: pool_size
206-
integer, intent(in), optional :: stride
207-
integer :: stride_
208-
type(layer) :: res
209-
210-
if (pool_size < 2) &
211-
error stop 'pool_size must be >= 2 in a avgpool3d layer'
212-
213-
! Stride defaults to pool_size if not provided
214-
if (present(stride)) then
215-
stride_ = stride
216-
else
217-
stride_ = pool_size
218-
end if
219-
220-
if (stride_ < 1) &
221-
error stop 'stride must be >= 1 in a avgpool3d layer'
222-
223-
res % name = 'avgpool3d'
224-
225-
allocate( &
226-
res % p, &
227-
source=avgpool3d_layer(pool_size, stride_) &
228-
)
229-
230-
end function avgpool3d
231-
232-
233201
module function input1d(layer_size) result(res)
234202
integer, intent(in) :: layer_size
235203
type(layer) :: res
@@ -318,36 +286,6 @@ module function maxpool2d(pool_size, stride) result(res)
318286

319287
end function maxpool2d
320288

321-
322-
module function maxpool3d(pool_size, stride) result(res)
323-
integer, intent(in) :: pool_size
324-
integer, intent(in), optional :: stride
325-
integer :: stride_
326-
type(layer) :: res
327-
328-
if (pool_size < 2) &
329-
error stop 'pool_size must be >= 2 in a maxpool3d layer'
330-
331-
! Stride defaults to pool_size if not provided
332-
if (present(stride)) then
333-
stride_ = stride
334-
else
335-
stride_ = pool_size
336-
end if
337-
338-
if (stride_ < 1) &
339-
error stop 'stride must be >= 1 in a maxpool3d layer'
340-
341-
res % name = 'maxpool3d'
342-
343-
allocate( &
344-
res % p, &
345-
source=maxpool3d_layer(pool_size, stride_) &
346-
)
347-
348-
end function maxpool3d
349-
350-
351289
module function reshape2d(dim1, dim2) result(res)
352290
integer, intent(in) :: dim1, dim2
353291
type(layer) :: res

0 commit comments

Comments
 (0)