Subroutine to initialize the cluster layer of a Two Level Self-Organizing Map
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(two_level_self_organizing_map) | :: | kohonen_map |
A |
|||
integer | :: | seed |
An integer variable with the random seed |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | ix | ||||
integer, | public | :: | number_clusters | ||||
integer, | public | :: | ierr | ||||
real(kind=wp), | public, | allocatable | :: | input(:,:) |
subroutine set_cluster_layer(kohonen_map,seed) !======================================================================================== !! Subroutine to initialize the cluster layer of a Two Level Self-Organizing Map class(two_level_self_organizing_map) :: kohonen_map !! A `two_level_self_organizing_map` object integer :: seed !! An integer variable with the random seed integer :: ix,number_clusters,ierr real(kind=wp),allocatable :: input(:,:) ! number_clusters=kohonen_map%parameters(2)%number_nodes_nx*& kohonen_map%parameters(2)%number_nodes_ny*& kohonen_map%parameters(2)%number_nodes_nz; write(*,*) 'nc=', number_clusters allocate(input(kohonen_map%number_variables1,kohonen_map%number_variables2),stat=ierr) write(*,*) 'nc1= ',size(input,1),size(input,2) ! seed=kohonen_map%parameters(2)%random_seed_(1); allocate(kohonen_map%cluster_layer(number_clusters),stat=ierr); write(*,*) seed call kohonen_map%rnumber_grator(2)%create(seed); !call sgrnd(seed); do ix=1,number_clusters !call grnd_array(input); call kohonen_map%create_random_sample(input); write(*,*) ix,input write(*,*) size(kohonen_map%cluster_layer) call kohonen_map%cluster_layer(ix)%create(input); enddo ! call kohonen_map%factory%create_distance(kohonen_map%parameters(2)%distance_type,kohonen_map%distance_function); ! deallocate(input); ! end subroutine set_cluster_layer