1010
1111int phon_pred_lr_cnn (float * output_signal , float * input_signal ,
1212 unsigned in_time , unsigned in_channels ,
13- float * mean , float * var , unsigned affine , float * gamma , float * beta , unsigned in_place ,
13+ const float * const mean , const float * const var ,
14+ unsigned affine , float * gamma , float * beta , unsigned in_place ,
1415 unsigned cnn_hidden , unsigned cnn_padding , unsigned cnn_kernel_size ,
15- const void * cnn_params , unsigned cnn_stride , int cnn_activation ) {
16+ const void * cnn_params , unsigned cnn_stride , unsigned cnn_activation ) {
1617
1718 unsigned out_time = in_time - cnn_kernel_size + 2 * cnn_padding + 1 ;
1819 if (in_place ) {
@@ -44,29 +45,31 @@ int phon_pred_lr_cnn(float* output_signal, float* input_signal,
4445
4546int phon_pred_depth_point_lr_cnn (float * output_signal , float * input_signal ,
4647 unsigned in_time , unsigned in_channels ,
47- float * mean , float * var , unsigned affine , float * gamma , float * beta , unsigned in_place ,
48- unsigned depth_cnn_hidden , unsigned depth_cnn_padding , unsigned depth_cnn_kernel_size ,
49- const void * depth_cnn_params , unsigned depth_cnn_stride , int depth_cnn_activation ,
48+ const float * const mean , const float * const var ,
49+ unsigned affine , const float * const gamma , const float * const beta , unsigned in_place ,
50+ unsigned depth_cnn_padding , unsigned depth_cnn_kernel_size ,
51+ const void * depth_cnn_params , unsigned depth_cnn_stride , unsigned depth_cnn_activation ,
5052 unsigned point_cnn_hidden , unsigned point_cnn_padding , unsigned point_cnn_kernel_size ,
51- const void * point_cnn_params , unsigned point_cnn_stride , int point_cnn_activation ,
52- unsigned pool_padding , unsigned pool_kernel_size , unsigned pool_stride , int pool_activation ) {
53+ const void * point_cnn_params , unsigned point_cnn_stride , unsigned point_cnn_activation ,
54+ unsigned pool_padding , unsigned pool_kernel_size , unsigned pool_stride , unsigned pool_activation ) {
5355
5456 // Activation
55- unsigned out_time ;
57+
5658 float * act_out = (float * )malloc (in_time * (in_channels >> 1 ) * sizeof (float ));
5759 semi_sigmoid_tanh (act_out , input_signal , in_time , in_channels );
5860
5961 in_channels >>= 1 ;
6062 float * depth_out ;
63+ unsigned out_time = in_time - depth_cnn_kernel_size + 2 * depth_cnn_padding + 1 ;
6164 if (in_place ) {
6265 // Norm
6366 batchnorm1d (0 , act_out ,
6467 in_time , in_channels ,
65- mean , var , affine , gamma , beta ,
68+ mean , var ,
69+ affine , gamma , beta ,
6670 in_place , 0.00001 );
6771 // Depth CNN
68- out_time = in_time - depth_cnn_kernel_size + 2 * depth_cnn_padding + 1 ;
69- depth_out = (float * )malloc (out_time * depth_cnn_hidden * sizeof (float ));
72+ depth_out = (float * )malloc (out_time * in_channels * sizeof (float ));
7073 conv1d_depth (depth_out , out_time , act_out ,
7174 in_time , in_channels , depth_cnn_padding , depth_cnn_kernel_size ,
7275 depth_cnn_params , depth_cnn_stride , depth_cnn_activation );
@@ -77,12 +80,12 @@ int phon_pred_depth_point_lr_cnn(float* output_signal, float* input_signal,
7780 float * norm_out = (float * )malloc (in_time * in_channels * sizeof (float ));
7881 batchnorm1d (norm_out , act_out ,
7982 in_time , in_channels ,
80- mean , var , affine , gamma , beta ,
83+ mean , var ,
84+ affine , gamma , beta ,
8185 in_place , 0.00001 );
8286 free (act_out );
8387 // Depth CNN
84- out_time = in_time - depth_cnn_kernel_size + 2 * depth_cnn_padding + 1 ;
85- depth_out = (float * )malloc (out_time * depth_cnn_hidden * sizeof (float ));
88+ depth_out = (float * )malloc (out_time * in_channels * sizeof (float ));
8689 conv1d_depth (depth_out , out_time , norm_out ,
8790 in_time , in_channels , depth_cnn_padding , depth_cnn_kernel_size ,
8891 depth_cnn_params , depth_cnn_stride , depth_cnn_activation );
@@ -94,7 +97,7 @@ int phon_pred_depth_point_lr_cnn(float* output_signal, float* input_signal,
9497 out_time = in_time - point_cnn_kernel_size + 2 * point_cnn_padding + 1 ;
9598 float * point_out = (float * )malloc (out_time * point_cnn_hidden * sizeof (float ));
9699 conv1d_lr (point_out , out_time , point_cnn_hidden , depth_out ,
97- in_time , depth_cnn_hidden , point_cnn_padding , point_cnn_kernel_size ,
100+ in_time , in_channels , point_cnn_padding , point_cnn_kernel_size ,
98101 point_cnn_params , point_cnn_stride , point_cnn_activation );
99102 free (depth_out );
100103
0 commit comments