diff --git a/README.md b/README.md index e9435537..7e26a695 100644 --- a/README.md +++ b/README.md @@ -159,7 +159,17 @@ We offer a comprehensive guide to walk you through the process of optimizing an Compress np.compressor - Compress and optimize the user’s model. + Compress the user’s model. + + + Optimize + np.optimizer + Optimize the user’s model. + + + Simulate + np.simulator + Simulate the user’s model. Quantize @@ -172,9 +182,9 @@ We offer a comprehensive guide to walk you through the process of optimizing an Convert and quantize the user’s model to run efficiently on device. - Benchmark - np.benchmarker - Benchmark the user's model to measure model inference speed on diverse device. + Profile + np.profiler + Profile the user's model to measure model inference speed on diverse device. @@ -204,6 +214,11 @@ Log-in to your netspresso account. Please sign-up [here](https://netspresso.ai/? ```python from netspresso import NetsPresso +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") + +# Note: Email/password login will be deprecated soon netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") ``` @@ -398,11 +413,11 @@ conversion_result = converter.convert_model( ) ``` -### Benchmarker +### Profiler -#### Benchmark +#### Profile -To start benchmarking a model, enter the model path to benchmark and the target device name. +To start profiling a model, enter the model path to profile and the target device name. For NVIDIA GPUs and Jetson devices, device name and software version have to be matched with the target device of the conversion. @@ -411,22 +426,22 @@ TensorRT Model has strong dependency with the device type and its jetpack versio ```python from netspresso.enums import DeviceName, SoftwareVersion -# 1. Declare benchmarker -benchmarker = netspresso.benchmarker_v2() +# 1. Declare profiler +profiler = netspresso.profiler_v2() -# 2. Run benchmark -benchmark_result = benchmarker.benchmark_model( +# 2. Run profile +profile_result = profiler.profile_model( input_model_path="./outputs/converted/TENSORRT_JETSON_AGX_ORIN_JETPACK_5_0_1/TENSORRT_JETSON_AGX_ORIN_JETPACK_5_0_1.trt", target_device_name=DeviceName.JETSON_AGX_ORIN, target_software_version=SoftwareVersion.JETPACK_5_0_1, ) -print(f"model inference latency: {benchmark_result.benchmark_result.latency} ms") -print(f"model gpu memory footprint: {benchmark_result.benchmark_result.memory_footprint_gpu} MB") -print(f"model cpu memory footprint: {benchmark_result.benchmark_result.memory_footprint_cpu} MB") +print(f"model inference latency: {profile_result.profile_result.latency} ms") +print(f"model gpu memory footprint: {profile_result.profile_result.memory_footprint_gpu} MB") +print(f"model cpu memory footprint: {profile_result.profile_result.memory_footprint_cpu} MB") ```
- Supported options for Converter & Benchmarker + Supported options for Converter & Profier
### Frameworks that support conversion for model's framework @@ -438,7 +453,7 @@ print(f"model cpu memory footprint: {benchmark_result.benchmark_result.memory_fo | OPENVINO | ✔️ | | | | TENSORFLOW_LITE | ✔️ | ✔️ | ✔️ | - ### Devices that support benchmarks for model's framework + ### Devices that support profiles for model's framework | Device / Framework | ONNX | TENSORRT | TENSORFLOW_LITE | DRPAI | OPENVINO | |:-----------------------------|:----:|:--------:|:---------------:|:-----:|:--------:| @@ -463,7 +478,7 @@ print(f"model cpu memory footprint: {benchmark_result.benchmark_result.memory_fo | AWS_T4 | ✔️ | ✔️ | | | | | INTEL_XEON_W_2233 | | | | | ✔️ | - ### Software versions that support conversions and benchmarks for specific devices + ### Software versions that support conversions and profiles for specific devices Software Versions requires for Jetson Device. If you are using a different device, you do not need to enter it. @@ -485,25 +500,25 @@ print(f"model cpu memory footprint: {benchmark_result.benchmark_result.memory_fo target_device_name=DeviceName.JETSON_AGX_ORIN, target_software_version=SoftwareVersion.JETPACK_5_0_1, ) - benchmark_result = benchmarker.benchmark_model( + profile_result = profiler.profile_model( input_model_path=CONVERTED_MODEL_PATH, target_device_name=DeviceName.JETSON_AGX_ORIN, target_software_version=SoftwareVersion.JETPACK_5_0_1, ) ``` - ### Hardware type that support benchmarks for specific devices + ### Hardware type that support profiles for specific devices - Benchmark and compare models with and without Arm Helium. + Profile and compare models with and without Arm Helium. `RENESAS_RA8D1` and `ALIF_ENSEMBLE_E7_DEVKIT_GEN2` are available for use. - The benchmark results with Helium can be up to twice as fast as without Helium. + The profile results with Helium can be up to twice as fast as without Helium. The code below is an example of using hardware type. ```python - benchmark_result = benchmarker.benchmark_model( + profile_result = profiler.profile_model( input_model_path=CONVERTED_MODEL_PATH, target_device_name=DeviceName.RENESAS_RA8D1, target_data_type=DataType.INT8, @@ -537,8 +552,8 @@ print(f"model cpu memory footprint: {benchmark_result.benchmark_result.memory_fo 50 - Benchmarker - Benchmark + Profiler + Profile 25 diff --git a/docs/description/netspresso/compressor/advanced_compression/manual_compression.md b/docs/description/netspresso/compressor/advanced_compression/manual_compression.md index 44567963..00ac6860 100644 --- a/docs/description/netspresso/compressor/advanced_compression/manual_compression.md +++ b/docs/description/netspresso/compressor/advanced_compression/manual_compression.md @@ -75,8 +75,12 @@ FRAMEWORK = Framework.PYTORCH ```python from netspresso import NetsPresso +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") -netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") +# Note: Email/password login will be deprecated soon +# netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") compressor = netspresso.compressor_v2() model = compressor.upload_model( @@ -165,8 +169,12 @@ from netspresso import NetsPresso from netspresso.enums import CompressionMethod, Policy, LayerNorm, GroupPolicy from netspresso.clients.compressor.v2.schemas import Options +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") -netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") +# Note: Email/password login will be deprecated soon +# netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") compressor = netspresso.compressor_v2() compression_info = compressor.select_compression_method( @@ -291,8 +299,12 @@ from netspresso import NetsPresso from netspresso.enums import CompressionMethod, GroupPolicy, LayerNorm, Policy from netspresso.clients.compressor.v2.schemas import Options +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") -netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") +# Note: Email/password login will be deprecated soon +# netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") # 1. Declare compressor compressor = netspresso.compressor_v2() diff --git a/docs/description/netspresso/compressor/advanced_compression/recommendation_compression.md b/docs/description/netspresso/compressor/advanced_compression/recommendation_compression.md index b40672f2..335ff9f7 100644 --- a/docs/description/netspresso/compressor/advanced_compression/recommendation_compression.md +++ b/docs/description/netspresso/compressor/advanced_compression/recommendation_compression.md @@ -113,7 +113,12 @@ from netspresso import NetsPresso from netspresso.enums import CompressionMethod, RecommendationMethod -netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") + +# Note: Email/password login will be deprecated soon +# netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") compressor = netspresso.compressor_v2() compressed_model = compressor.recommendation_compression( diff --git a/docs/description/netspresso/compressor/automatic_compression.md b/docs/description/netspresso/compressor/automatic_compression.md index 136d5b5c..ae7ce048 100644 --- a/docs/description/netspresso/compressor/automatic_compression.md +++ b/docs/description/netspresso/compressor/automatic_compression.md @@ -27,7 +27,12 @@ from netspresso import NetsPresso -netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") + +# Note: Email/password login will be deprecated soon +# netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") compressor = netspresso.compressor_v2() compressed_model = compressor.automatic_compression( diff --git a/docs/description/netspresso/converter/converter.md b/docs/description/netspresso/converter/converter.md index f0118a3a..feb1c8bb 100644 --- a/docs/description/netspresso/converter/converter.md +++ b/docs/description/netspresso/converter/converter.md @@ -19,7 +19,12 @@ from netspresso import NetsPresso from netspresso.enums import DeviceName, Framework, SoftwareVersion -netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") + +# Note: Email/password login will be deprecated soon +# netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") converter = netspresso.converter_v2() conversion_task = converter.convert_model( diff --git a/docs/description/netspresso/optimizer/optimizer.md b/docs/description/netspresso/optimizer/optimizer.md index 73c46baf..6d2af801 100644 --- a/docs/description/netspresso/optimizer/optimizer.md +++ b/docs/description/netspresso/optimizer/optimizer.md @@ -46,7 +46,12 @@ The following pattern handlers are available for graph optimization: from netspresso import NetsPresso from netspresso.enums.graph_optimize import GraphOptimizePatternHandler -netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") + +# Note: Email/password login will be deprecated soon +# netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") # Initialize graph optimizer optimizer = netspresso.graph_optimizer() @@ -69,7 +74,12 @@ optimized_model = optimizer.optimize( from netspresso import NetsPresso from netspresso.enums.graph_optimize import GraphOptimizePatternHandler -netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") + +# Note: Email/password login will be deprecated soon +# netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") # Initialize graph optimizer optimizer = netspresso.graph_optimizer() diff --git a/docs/description/netspresso/profiler/profiler.md b/docs/description/netspresso/profiler/profiler.md index 649a8632..a286482b 100644 --- a/docs/description/netspresso/profiler/profiler.md +++ b/docs/description/netspresso/profiler/profiler.md @@ -19,7 +19,12 @@ from netspresso import NetsPresso from netspresso.enums import DeviceName, SoftwareVersion -netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") + +# Note: Email/password login will be deprecated soon +# netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") profiler = netspresso.profiler() profiling_task = profiler.profile_model( diff --git a/docs/description/netspresso/quantizer/automatic_quantization.md b/docs/description/netspresso/quantizer/automatic_quantization.md index 5dbfb26b..16d824a2 100644 --- a/docs/description/netspresso/quantizer/automatic_quantization.md +++ b/docs/description/netspresso/quantizer/automatic_quantization.md @@ -19,7 +19,12 @@ from netspresso import NetsPresso from netspresso.enums import QuantizationPrecision -netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") + +# Note: Email/password login will be deprecated soon +# netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") quantizer = netspresso.quantizer() quantization_result = quantizer.automatic_quantization( diff --git a/docs/description/netspresso/quantizer/custom_precision_quantization_by_layer_name.md b/docs/description/netspresso/quantizer/custom_precision_quantization_by_layer_name.md index 5590ae43..1e6877da 100644 --- a/docs/description/netspresso/quantizer/custom_precision_quantization_by_layer_name.md +++ b/docs/description/netspresso/quantizer/custom_precision_quantization_by_layer_name.md @@ -19,7 +19,12 @@ from netspresso import NetsPresso from netspresso.enums import QuantizationPrecision -netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") + +# Note: Email/password login will be deprecated soon +# netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") quantizer = netspresso.quantizer() diff --git a/docs/description/netspresso/quantizer/custom_precision_quantization_by_operator_type.md b/docs/description/netspresso/quantizer/custom_precision_quantization_by_operator_type.md index ac005249..af4684e5 100644 --- a/docs/description/netspresso/quantizer/custom_precision_quantization_by_operator_type.md +++ b/docs/description/netspresso/quantizer/custom_precision_quantization_by_operator_type.md @@ -19,7 +19,12 @@ from netspresso import NetsPresso from netspresso.enums import QuantizationPrecision -netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") + +# Note: Email/password login will be deprecated soon +# netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") quantizer = netspresso.quantizer() diff --git a/docs/description/netspresso/quantizer/recommendation_precision.md b/docs/description/netspresso/quantizer/recommendation_precision.md index 251351cb..1a6b4d92 100644 --- a/docs/description/netspresso/quantizer/recommendation_precision.md +++ b/docs/description/netspresso/quantizer/recommendation_precision.md @@ -19,7 +19,12 @@ from netspresso import NetsPresso from netspresso.enums import QuantizationPrecision -netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") + +# Note: Email/password login will be deprecated soon +# netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") quantizer = netspresso.quantizer() recommendation_metadata = quantizer.get_recommendation_precision( diff --git a/docs/description/netspresso/quantizer/uniform_precision_quantization.md b/docs/description/netspresso/quantizer/uniform_precision_quantization.md index ac542397..b09116ef 100644 --- a/docs/description/netspresso/quantizer/uniform_precision_quantization.md +++ b/docs/description/netspresso/quantizer/uniform_precision_quantization.md @@ -19,7 +19,12 @@ from netspresso import NetsPresso from netspresso.enums import QuantizationPrecision, SimilarityMetric -netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") + +# Note: Email/password login will be deprecated soon +# netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") quantizer = netspresso.quantizer() quantization_result = quantizer.uniform_precision_quantization( diff --git a/docs/description/netspresso/simulator/simulator.md b/docs/description/netspresso/simulator/simulator.md index 3e4ea606..bc644667 100644 --- a/docs/description/netspresso/simulator/simulator.md +++ b/docs/description/netspresso/simulator/simulator.md @@ -18,7 +18,12 @@ from netspresso import NetsPresso from pathlib import Path -netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") + +# Note: Email/password login will be deprecated soon +# netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") # Initialize simulator simulator = netspresso.simulator() diff --git a/docs/description/netspresso/trainer/trainer.md b/docs/description/netspresso/trainer/trainer.md index d8f61a5d..df96b3e5 100644 --- a/docs/description/netspresso/trainer/trainer.md +++ b/docs/description/netspresso/trainer/trainer.md @@ -21,8 +21,12 @@ from netspresso.trainer.augmentations import Resize from netspresso.trainer.optimizers import AdamW from netspresso.trainer.schedulers import CosineAnnealingWarmRestartsWithCustomWarmUp +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") -netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") +# Note: Email/password login will be deprecated soon +# netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") # 1. Declare trainer trainer = netspresso.trainer(task=Task.OBJECT_DETECTION) @@ -69,8 +73,12 @@ training_result = trainer.train(gpus="0, 1", project_name="project_sample") from netspresso import NetsPresso from netspresso.trainer.optimizers import AdamW +# Login with API key (recommended) +# Get your API token from: https://account.netspresso.ai/api-token +netspresso = NetsPresso(api_key="YOUR_API_KEY") -netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") +# Note: Email/password login will be deprecated soon +# netspresso = NetsPresso(email="YOUR_EMAIL", password="YOUR_PASSWORD") # 1. Declare trainer trainer = netspresso.trainer(yaml_path="./temp/hparams.yaml")