# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. #pylint: disable=no-member, too-many-locals, too-many-branches, no-self-use, broad-except, lost-exception, too-many-nested-blocks, too-few-public-methods, invalid-name """ This file tests and ensures that all tutorials notebooks run without warning or exception. env variable MXNET_TUTORIAL_TEST_KERNEL controls which kernel to use when running the notebook. e.g: `export MXNET_TUTORIAL_TEST_KERNEL=python2` env variable MXNET_TUTORIAL_TEST_NO_CACHE controls whether to clean the temporary directory in which the notebook was run and re-download any resource file. The default behaviour is to not clean the directory. Set to '1' to force clean the directory. e.g: `export MXNET_TUTORIAL_TEST_NO_CACHE=1` NB: in the real CI, the tests will re-download everything since they start from a clean workspace. """ import os import sys sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', 'utils')) from notebook_test import run_notebook # This is outdated and need to be completely redone. TUTORIAL_DIR = os.path.join(os.path.dirname(__file__), '..', '..', 'docs', '_build', 'html', 'tutorials') KERNEL = os.getenv('MXNET_TUTORIAL_TEST_KERNEL', None) NO_CACHE = os.getenv('MXNET_TUTORIAL_TEST_NO_CACHE', False) def _test_tutorial_nb(tutorial): """Run tutorial Jupyter notebook to catch any execution error. Parameters ---------- tutorial : str the name of the tutorial to be tested Returns ------- True if there are no warnings or errors. """ return run_notebook(tutorial, TUTORIAL_DIR, kernel=KERNEL, no_cache=NO_CACHE) def test_basic_ndarray(): assert _test_tutorial_nb('basic/ndarray') def test_basic_ndarray_indexing(): assert _test_tutorial_nb('basic/ndarray_indexing') def test_basic_symbol(): assert _test_tutorial_nb('basic/symbol') def test_basic_module(): assert _test_tutorial_nb('basic/module') def test_basic_data(): assert _test_tutorial_nb('basic/data') def test_basic_reshape_transpose(): assert _test_tutorial_nb('basic/reshape_transpose') def test_gluon_customop(): assert _test_tutorial_nb('gluon/customop') def test_gluon_custom_layer(): assert _test_tutorial_nb('gluon/custom_layer') def test_gluon_transforms(): assert _test_tutorial_nb('gluon/transforms') def test_gluon_data_augmentation(): assert _test_tutorial_nb('gluon/data_augmentation') def test_gluon_datasets(): assert _test_tutorial_nb('gluon/datasets') def test_gluon_naming(): assert _test_tutorial_nb('gluon/naming') def test_gluon_ndarray(): assert _test_tutorial_nb('gluon/ndarray') def test_gluon_mnist(): assert _test_tutorial_nb('gluon/mnist') def test_gluon_autograd(): assert _test_tutorial_nb('gluon/autograd') def test_gluon_gluon(): assert _test_tutorial_nb('gluon/gluon') def test_gluon_multi_gpu(): assert _test_tutorial_nb('gluon/multi_gpu') def test_gluon_save_load_params(): assert _test_tutorial_nb('gluon/save_load_params') def test_gluon_hybrid(): assert _test_tutorial_nb('gluon/hybrid') # https://github.com/apache/mxnet/issues/16181 """ def test_gluon_performance(): assert _test_tutorial_nb('gluon/performance') """ def test_gluon_pretrained_models(): assert _test_tutorial_nb('gluon/pretrained_models') def test_gluon_learning_rate_finder(): assert _test_tutorial_nb('gluon/learning_rate_finder') def test_gluon_learning_rate_schedules(): assert _test_tutorial_nb('gluon/learning_rate_schedules') def test_gluon_learning_rate_schedules_advanced(): assert _test_tutorial_nb('gluon/learning_rate_schedules_advanced') def test_gluon_info_gan(): assert _test_tutorial_nb('gluon/info_gan') def test_gluon_fit_api_fashion_mnist(): assert _test_tutorial_nb('gluon/fit_api_tutorial') def test_nlp_cnn(): assert _test_tutorial_nb('nlp/cnn') def test_onnx_super_resolution(): assert _test_tutorial_nb('onnx/super_resolution') def test_onnx_export_mxnet_to_onnx(): assert _test_tutorial_nb('onnx/export_mxnet_to_onnx') def test_onnx_fine_tuning_gluon(): assert _test_tutorial_nb('onnx/fine_tuning_gluon') def test_onnx_inference_on_onnx_model(): assert _test_tutorial_nb('onnx/inference_on_onnx_model') def test_python_linear_regression(): assert _test_tutorial_nb('python/linear-regression') def test_python_logistic_regression() : assert _test_tutorial_nb('gluon/logistic_regression_explained') def test_python_numpy_gotchas() : assert _test_tutorial_nb('gluon/gotchas_numpy_in_mxnet') def test_gluon_end_to_end(): assert _test_tutorial_nb('gluon/gluon_from_experiment_to_deployment') def test_python_mnist(): assert _test_tutorial_nb('python/mnist') def test_python_predict_image(): assert _test_tutorial_nb('python/predict_image') def test_python_data_augmentation(): assert _test_tutorial_nb('python/data_augmentation') def test_python_data_augmentation_with_masks(): assert _test_tutorial_nb('python/data_augmentation_with_masks') def test_python_kvstore(): assert _test_tutorial_nb('python/kvstore') def test_module_to_gluon(): assert _test_tutorial_nb('python/module_to_gluon') def test_python_types_of_data_augmentation(): assert _test_tutorial_nb('python/types_of_data_augmentation') #https://github.com/apache/mxnet/issues/16181 """ def test_python_profiler(): assert _test_tutorial_nb('python/profiler') """ def test_sparse_row_sparse(): assert _test_tutorial_nb('sparse/row_sparse') def test_sparse_csr(): assert _test_tutorial_nb('sparse/csr') def test_sparse_train(): assert _test_tutorial_nb('sparse/train') def test_sparse_train_gluon(): assert _test_tutorial_nb('sparse/train_gluon') def test_speech_recognition_ctc(): assert _test_tutorial_nb('speech_recognition/ctc') def test_unsupervised_learning_gan(): assert _test_tutorial_nb('unsupervised_learning/gan') def test_vision_large_scale_classification(): assert _test_tutorial_nb('vision/large_scale_classification') def test_vision_cnn_visualization(): assert _test_tutorial_nb('vision/cnn_visualization') def test_control_flow(): assert _test_tutorial_nb('control_flow/ControlFlowTutorial') def test_amp(): assert _test_tutorial_nb('amp/amp_tutorial') # https://github.com/apache/mxnet/issues/16181 """ def test_dnnl_quantization(): assert _test_tutorial_nb('dnnl/dnnl_quantization') """