find_package(Python3 REQUIRED COMPONENTS Interpreter) macro(pnnx_add_test name) add_test(NAME test_${name} COMMAND ${CMAKE_COMMAND} -DPYTHON_EXECUTABLE=${Python3_EXECUTABLE} -DPYTHON_SCRIPT=${CMAKE_CURRENT_SOURCE_DIR}/test_${name}.py -P ${CMAKE_CURRENT_SOURCE_DIR}/run_test.cmake) endmacro() pnnx_add_test(F_adaptive_avg_pool1d) pnnx_add_test(F_adaptive_avg_pool2d) pnnx_add_test(F_adaptive_avg_pool3d) pnnx_add_test(F_adaptive_max_pool1d) pnnx_add_test(F_adaptive_max_pool2d) pnnx_add_test(F_adaptive_max_pool3d) pnnx_add_test(F_alpha_dropout) pnnx_add_test(F_affine_grid) pnnx_add_test(F_avg_pool1d) pnnx_add_test(F_avg_pool2d) pnnx_add_test(F_avg_pool3d) pnnx_add_test(F_batch_norm) pnnx_add_test(F_celu) pnnx_add_test(F_conv1d) pnnx_add_test(F_conv2d) pnnx_add_test(F_conv3d) pnnx_add_test(F_conv_transpose1d) pnnx_add_test(F_conv_transpose2d) pnnx_add_test(F_conv_transpose3d) pnnx_add_test(F_dropout) pnnx_add_test(F_dropout2d) pnnx_add_test(F_dropout3d) pnnx_add_test(F_elu) pnnx_add_test(F_embedding) pnnx_add_test(F_feature_alpha_dropout) pnnx_add_test(F_gelu) pnnx_add_test(F_grid_sample) pnnx_add_test(F_group_norm) pnnx_add_test(F_hardshrink) pnnx_add_test(F_hardsigmoid) pnnx_add_test(F_hardswish) pnnx_add_test(F_hardtanh) pnnx_add_test(F_instance_norm) pnnx_add_test(F_interpolate) pnnx_add_test(F_layer_norm) pnnx_add_test(F_leaky_relu) pnnx_add_test(F_linear) pnnx_add_test(F_local_response_norm) pnnx_add_test(F_log_softmax) pnnx_add_test(F_logsigmoid) pnnx_add_test(F_lp_pool1d) pnnx_add_test(F_lp_pool2d) pnnx_add_test(F_max_pool1d) pnnx_add_test(F_max_pool2d) pnnx_add_test(F_max_pool3d) pnnx_add_test(F_normalize) pnnx_add_test(F_pad) pnnx_add_test(F_pixel_shuffle) pnnx_add_test(F_pixel_unshuffle) pnnx_add_test(F_prelu) pnnx_add_test(F_relu) pnnx_add_test(F_relu6) pnnx_add_test(F_rrelu) pnnx_add_test(F_selu) pnnx_add_test(F_sigmoid) pnnx_add_test(F_silu) pnnx_add_test(F_softmax) pnnx_add_test(F_softmin) pnnx_add_test(F_softplus) pnnx_add_test(F_softshrink) pnnx_add_test(F_softsign) pnnx_add_test(F_tanh) pnnx_add_test(F_tanhshrink) pnnx_add_test(F_threshold) pnnx_add_test(F_upsample_bilinear) pnnx_add_test(F_upsample_nearest) pnnx_add_test(F_upsample) pnnx_add_test(nn_AdaptiveAvgPool1d) pnnx_add_test(nn_AdaptiveAvgPool2d) pnnx_add_test(nn_AdaptiveAvgPool3d) pnnx_add_test(nn_AdaptiveMaxPool1d) pnnx_add_test(nn_AdaptiveMaxPool2d) pnnx_add_test(nn_AdaptiveMaxPool3d) pnnx_add_test(nn_AlphaDropout) pnnx_add_test(nn_AvgPool1d) pnnx_add_test(nn_AvgPool2d) pnnx_add_test(nn_AvgPool3d) pnnx_add_test(nn_BatchNorm1d) pnnx_add_test(nn_BatchNorm2d) pnnx_add_test(nn_BatchNorm3d) pnnx_add_test(nn_CELU) pnnx_add_test(nn_ChannelShuffle) pnnx_add_test(nn_ConstantPad1d) pnnx_add_test(nn_ConstantPad2d) pnnx_add_test(nn_ConstantPad3d) pnnx_add_test(nn_Conv1d) pnnx_add_test(nn_Conv2d) pnnx_add_test(nn_Conv3d) pnnx_add_test(nn_ConvTranspose1d) pnnx_add_test(nn_ConvTranspose2d) pnnx_add_test(nn_ConvTranspose3d) pnnx_add_test(nn_Dropout) pnnx_add_test(nn_Dropout2d) pnnx_add_test(nn_Dropout3d) pnnx_add_test(nn_ELU) pnnx_add_test(nn_Embedding) pnnx_add_test(nn_GELU) pnnx_add_test(nn_GroupNorm) pnnx_add_test(nn_GRU) pnnx_add_test(nn_Hardshrink) pnnx_add_test(nn_Hardsigmoid) pnnx_add_test(nn_Hardswish) pnnx_add_test(nn_Hardtanh) pnnx_add_test(nn_InstanceNorm1d) pnnx_add_test(nn_InstanceNorm2d) pnnx_add_test(nn_InstanceNorm3d) pnnx_add_test(nn_LayerNorm) pnnx_add_test(nn_LeakyReLU) pnnx_add_test(nn_Linear) pnnx_add_test(nn_LocalResponseNorm) pnnx_add_test(nn_LogSigmoid) pnnx_add_test(nn_LogSoftmax) pnnx_add_test(nn_LPPool1d) pnnx_add_test(nn_LPPool2d) pnnx_add_test(nn_LSTM) pnnx_add_test(nn_MaxPool1d) pnnx_add_test(nn_MaxPool2d) pnnx_add_test(nn_MaxPool3d) pnnx_add_test(nn_MultiheadAttention) pnnx_add_test(nn_PixelShuffle) pnnx_add_test(nn_PixelUnshuffle) pnnx_add_test(nn_PReLU) pnnx_add_test(nn_ReflectionPad1d) pnnx_add_test(nn_ReflectionPad2d) pnnx_add_test(nn_ReLU) pnnx_add_test(nn_ReLU6) pnnx_add_test(nn_ReplicationPad1d) pnnx_add_test(nn_ReplicationPad2d) pnnx_add_test(nn_ReplicationPad3d) pnnx_add_test(nn_RNN) pnnx_add_test(nn_RReLU) pnnx_add_test(nn_SELU) pnnx_add_test(nn_Sigmoid) pnnx_add_test(nn_SiLU) pnnx_add_test(nn_Softmax) pnnx_add_test(nn_Softmin) pnnx_add_test(nn_Softplus) pnnx_add_test(nn_Softshrink) pnnx_add_test(nn_Softsign) pnnx_add_test(nn_Tanh) pnnx_add_test(nn_Tanhshrink) pnnx_add_test(nn_Threshold) pnnx_add_test(nn_Upsample) pnnx_add_test(nn_UpsamplingBilinear2d) pnnx_add_test(nn_UpsamplingNearest2d) pnnx_add_test(nn_ZeroPad2d) pnnx_add_test(Tensor_contiguous) pnnx_add_test(Tensor_index) pnnx_add_test(Tensor_new_empty) pnnx_add_test(Tensor_repeat) pnnx_add_test(Tensor_reshape) pnnx_add_test(Tensor_select) pnnx_add_test(Tensor_slice) pnnx_add_test(Tensor_view) pnnx_add_test(torch_addmm) pnnx_add_test(torch_amax) pnnx_add_test(torch_amin) pnnx_add_test(torch_argmax) pnnx_add_test(torch_argmin) pnnx_add_test(torch_cat) pnnx_add_test(torch_chunk) pnnx_add_test(torch_clamp) pnnx_add_test(torch_clone) pnnx_add_test(torch_flatten) pnnx_add_test(torch_full) pnnx_add_test(torch_full_like) pnnx_add_test(torch_logsumexp) pnnx_add_test(torch_matmul) pnnx_add_test(torch_mean) pnnx_add_test(torch_norm) pnnx_add_test(torch_ones) pnnx_add_test(torch_ones_like) pnnx_add_test(torch_permute) pnnx_add_test(torch_prod) pnnx_add_test(torch_sum) pnnx_add_test(torch_split) pnnx_add_test(torch_squeeze) pnnx_add_test(torch_stack) pnnx_add_test(torch_transpose) pnnx_add_test(torch_unbind) pnnx_add_test(torch_unsqueeze) pnnx_add_test(torch_zeros) pnnx_add_test(torch_zeros_like) pnnx_add_test(mobilenet_v2) pnnx_add_test(mobilenet_v3_small) pnnx_add_test(resnet18) pnnx_add_test(shufflenet_v2_x1_0) pnnx_add_test(squeezenet1_1) # TODO enable end2end quantization model test #pnnx_add_test(quantization_shufflenet_v2_x1_0) pnnx_add_test(pnnx_eliminate_noop_math) pnnx_add_test(pnnx_fold_constant) pnnx_add_test(pnnx_fuse_conv1d_batchnorm1d) pnnx_add_test(pnnx_fuse_conv2d_batchnorm2d) pnnx_add_test(pnnx_fuse_convtranspose1d_batchnorm1d) pnnx_add_test(pnnx_fuse_convtranspose2d_batchnorm2d) pnnx_add_test(pnnx_fuse_linear_batchnorm1d) pnnx_add_test(pnnx_fuse_select_to_unbind) if(Torch_VERSION VERSION_GREATER_EQUAL "1.9") pnnx_add_test(F_mish) pnnx_add_test(nn_Mish) endif() if(TorchVision_FOUND) pnnx_add_test(torchvision_DeformConv2d) pnnx_add_test(torchvision_RoIAlign) endif() add_subdirectory(ncnn)