Skip to content

Commit 309ef6e

Browse files
committed
Remove get_gradients from network, layer, dense, conv1d, conv2d
1 parent 86ed7b3 commit 309ef6e

10 files changed

+0
-151
lines changed

src/nf/nf_conv1d_layer.f90

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ module nf_conv1d_layer
3131

3232
procedure :: forward
3333
procedure :: backward
34-
procedure :: get_gradients
3534
procedure :: get_gradients_ptr
3635
procedure :: get_num_params
3736
procedure :: get_params
@@ -109,15 +108,6 @@ module subroutine get_params_ptr(self, w_ptr, b_ptr)
109108
!! Pointer to the biases
110109
end subroutine get_params_ptr
111110

112-
module function get_gradients(self) result(gradients)
113-
!! Return the gradients of this layer.
114-
!! The gradients are ordered as weights first, biases second.
115-
class(conv1d_layer), intent(in), target :: self
116-
!! A `conv1d_layer` instance
117-
real, allocatable :: gradients(:)
118-
!! Gradients to get
119-
end function get_gradients
120-
121111
module subroutine get_gradients_ptr(self, dw_ptr, db_ptr)
122112
!! Return pointers to the gradients of this layer.
123113
class(conv1d_layer), intent(in), target :: self

src/nf/nf_conv1d_layer_submodule.f90

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -160,14 +160,6 @@ module subroutine get_params_ptr(self, w_ptr, b_ptr)
160160
b_ptr => self % biases
161161
end subroutine get_params_ptr
162162

163-
module function get_gradients(self) result(gradients)
164-
class(conv1d_layer), intent(in), target :: self
165-
real, allocatable :: gradients(:)
166-
real, pointer :: dw_(:) => null()
167-
dw_(1:size(self % dw)) => self % dw
168-
gradients = [ dw_, self % db ]
169-
end function get_gradients
170-
171163
module subroutine get_gradients_ptr(self, dw_ptr, db_ptr)
172164
class(conv1d_layer), intent(in), target :: self
173165
real, pointer, intent(out) :: dw_ptr(:)

src/nf/nf_conv2d_layer.f90

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ module nf_conv2d_layer
3232

3333
procedure :: forward
3434
procedure :: backward
35-
procedure :: get_gradients
3635
procedure :: get_gradients_ptr
3736
procedure :: get_num_params
3837
procedure :: get_params
@@ -110,15 +109,6 @@ module subroutine get_params_ptr(self, w_ptr, b_ptr)
110109
!! Pointer to the biases
111110
end subroutine get_params_ptr
112111

113-
module function get_gradients(self) result(gradients)
114-
!! Return the gradients of this layer.
115-
!! The gradients are ordered as weights first, biases second.
116-
class(conv2d_layer), intent(in), target :: self
117-
!! A `conv2d_layer` instance
118-
real, allocatable :: gradients(:)
119-
!! Gradients to get
120-
end function get_gradients
121-
122112
module subroutine get_gradients_ptr(self, dw_ptr, db_ptr)
123113
!! Return pointers to the gradients of this layer.
124114
class(conv2d_layer), intent(in), target :: self

src/nf/nf_conv2d_layer_submodule.f90

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -214,22 +214,6 @@ module subroutine get_params_ptr(self, w_ptr, b_ptr)
214214
end subroutine get_params_ptr
215215

216216

217-
module function get_gradients(self) result(gradients)
218-
class(conv2d_layer), intent(in), target :: self
219-
real, allocatable :: gradients(:)
220-
221-
real, pointer :: dw_(:) => null()
222-
223-
dw_(1:size(self % dw)) => self % dw
224-
225-
gradients = [ &
226-
dw_, &
227-
self % db &
228-
]
229-
230-
end function get_gradients
231-
232-
233217
module subroutine get_gradients_ptr(self, dw_ptr, db_ptr)
234218
class(conv2d_layer), intent(in), target :: self
235219
real, pointer, intent(out) :: dw_ptr(:)

src/nf/nf_dense_layer.f90

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ module nf_dense_layer
3333

3434
procedure :: backward
3535
procedure :: forward
36-
procedure :: get_gradients
3736
procedure :: get_gradients_ptr
3837
procedure :: get_num_params
3938
procedure :: get_params
@@ -104,15 +103,6 @@ module subroutine get_params_ptr(self, w_ptr, b_ptr)
104103
real, pointer, intent(out) :: b_ptr(:)
105104
end subroutine get_params_ptr
106105

107-
module function get_gradients(self) result(gradients)
108-
!! Return the gradients of this layer.
109-
!! The gradients are ordered as weights first, biases second.
110-
class(dense_layer), intent(in), target :: self
111-
!! Dense layer instance
112-
real, allocatable :: gradients(:)
113-
!! Gradients of this layer
114-
end function get_gradients
115-
116106
module subroutine get_gradients_ptr(self, dw_ptr, db_ptr)
117107
class(dense_layer), intent(in), target :: self
118108
real, pointer, intent(out) :: dw_ptr(:)

src/nf/nf_dense_layer_submodule.f90

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -86,22 +86,6 @@ module subroutine get_params_ptr(self, w_ptr, b_ptr)
8686
end subroutine get_params_ptr
8787

8888

89-
module function get_gradients(self) result(gradients)
90-
class(dense_layer), intent(in), target :: self
91-
real, allocatable :: gradients(:)
92-
93-
real, pointer :: dw_(:) => null()
94-
95-
dw_(1:size(self % dw)) => self % dw
96-
97-
gradients = [ &
98-
dw_, &
99-
self % db &
100-
]
101-
102-
end function get_gradients
103-
104-
10589
module subroutine get_gradients_ptr(self, dw_ptr, db_ptr)
10690
class(dense_layer), intent(in), target :: self
10791
real, pointer, intent(out) :: dw_ptr(:)

src/nf/nf_layer.f90

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ module nf_layer
2929
procedure :: forward
3030
procedure :: get_num_params
3131
procedure :: get_params
32-
procedure :: get_gradients
3332
procedure :: set_params
3433
procedure :: init
3534
procedure :: print_info
@@ -161,14 +160,6 @@ module function get_params(self) result(params)
161160
!! Parameters of this layer
162161
end function get_params
163162

164-
module function get_gradients(self) result(gradients)
165-
!! Returns the gradients of this layer.
166-
class(layer), intent(in) :: self
167-
!! Layer instance
168-
real, allocatable :: gradients(:)
169-
!! Gradients of this layer
170-
end function get_gradients
171-
172163
module subroutine set_params(self, params)
173164
!! Returns the parameters of this layer.
174165
class(layer), intent(in out) :: self

src/nf/nf_layer_submodule.f90

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -682,50 +682,6 @@ module function get_params(self) result(params)
682682

683683
end function get_params
684684

685-
module function get_gradients(self) result(gradients)
686-
class(layer), intent(in) :: self
687-
real, allocatable :: gradients(:)
688-
689-
select type (this_layer => self % p)
690-
type is (input1d_layer)
691-
! No gradients to get.
692-
type is (input2d_layer)
693-
! No gradients to get.
694-
type is (input3d_layer)
695-
! No gradients to get.
696-
type is (dense_layer)
697-
gradients = this_layer % get_gradients()
698-
type is (dropout_layer)
699-
! No gradients to get.
700-
type is (conv1d_layer)
701-
gradients = this_layer % get_gradients()
702-
type is (conv2d_layer)
703-
gradients = this_layer % get_gradients()
704-
type is (locally_connected1d_layer)
705-
gradients = this_layer % get_gradients()
706-
type is (maxpool1d_layer)
707-
! No gradients to get.
708-
type is (maxpool2d_layer)
709-
! No gradients to get.
710-
type is (flatten_layer)
711-
! No gradients to get.
712-
type is (reshape2d_layer)
713-
! No parameters to get.
714-
type is (reshape3d_layer)
715-
! No gradients to get.
716-
type is (linear2d_layer)
717-
gradients = this_layer % get_gradients()
718-
type is (self_attention_layer)
719-
gradients = this_layer % get_gradients()
720-
type is (embedding_layer)
721-
gradients = this_layer % get_gradients()
722-
type is (layernorm_layer)
723-
gradients = this_layer % get_gradients()
724-
class default
725-
error stop 'Unknown layer type.'
726-
end select
727-
728-
end function get_gradients
729685

730686
module subroutine set_params(self, params)
731687
class(layer), intent(in out) :: self

src/nf/nf_network.f90

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ module nf_network
2121
contains
2222

2323
procedure :: backward
24-
procedure :: get_gradients
2524
procedure :: get_num_params
2625
procedure :: get_params
2726
procedure :: print_info
@@ -216,7 +215,6 @@ module integer function get_num_params(self)
216215
!! Network instance
217216
end function get_num_params
218217

219-
220218
module function get_params(self) result(params)
221219
!! Get the network parameters (weights and biases).
222220
class(network), intent(in) :: self
@@ -225,13 +223,6 @@ module function get_params(self) result(params)
225223
!! Network parameters to get
226224
end function get_params
227225

228-
module function get_gradients(self) result(gradients)
229-
class(network), intent(in) :: self
230-
!! Network instance
231-
real, allocatable :: gradients(:)
232-
!! Network gradients to set
233-
end function get_gradients
234-
235226
module subroutine set_params(self, params)
236227
!! Set the network parameters (weights and biases).
237228
class(network), intent(in out) :: self

src/nf/nf_network_submodule.f90

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -524,25 +524,6 @@ module function get_params(self) result(params)
524524

525525
end function get_params
526526

527-
module function get_gradients(self) result(gradients)
528-
class(network), intent(in) :: self
529-
real, allocatable :: gradients(:)
530-
integer :: n, nstart, nend
531-
532-
allocate(gradients(self % get_num_params()))
533-
534-
nstart = 1
535-
do n = 1, size(self % layers)
536-
537-
if (self % layers(n) % get_num_params() < 1) cycle
538-
539-
nend = nstart + self % layers(n) % get_num_params() - 1
540-
gradients(nstart:nend) = self % layers(n) % get_gradients()
541-
nstart = nend + 1
542-
end do
543-
544-
end function get_gradients
545-
546527

547528
module subroutine set_params(self, params)
548529
class(network), intent(in out) :: self

0 commit comments

Comments
 (0)