1+ program network_parameters
2+ ! This program demonstrates how to access network parameters (weights and
3+ ! biases) from the layers' internal data structures.
4+ use nf, only: dense, input, layer, network
5+ use nf_conv2d_layer, only: conv2d_layer
6+ use nf_dense_layer, only: dense_layer
7+
8+ implicit none
9+
10+ type (network) :: net
11+ integer :: n
12+
13+ net = network([input(3 ), dense(5 ), dense(2 )])
14+
15+ do n = 1 , size (net % layers)
16+ print * , " Layer " , n, " is " // net % layers(n) % name
17+ select type (this_layer = > net % layers(n) % p)
18+ type is (dense_layer)
19+ print * , " with weights of shape" , shape (this_layer % weights)
20+ print * , " and " , size (this_layer % biases), " biases"
21+ print * , " Weights are:"
22+ print * , this_layer % weights
23+ type is (conv2d_layer)
24+ print * , " with kernel of shape" , shape (this_layer % kernel)
25+ print * , " and " , size (this_layer % biases), " biases"
26+ print * , " Kernel is:"
27+ print * , this_layer % kernel
28+ class default
29+ print * , " with no parameters"
30+ end select
31+ end do
32+
33+ end program network_parameters
0 commit comments