blob: 7148cb9f65c2ca7f27095ee45190c03594ccd822 [file] [log] [blame]
# 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')
"""