From 0320e7a6e49cf49e0ccb5d0ba1fcd96ea2468f3f Mon Sep 17 00:00:00 2001 From: cuicheng01 Date: Thu, 22 Jul 2021 05:52:58 +0000 Subject: [PATCH 1/6] Add config_description.md and vector search README_en.md --- deploy/vector_search/README_en.md | 95 +++++++++ docs/en/tutorials/config_description_en.md | 232 +++++++++++++++++++++ docs/en/tutorials/config_en.md | 94 --------- 3 files changed, 327 insertions(+), 94 deletions(-) create mode 100644 deploy/vector_search/README_en.md create mode 100644 docs/en/tutorials/config_description_en.md delete mode 100644 docs/en/tutorials/config_en.md diff --git a/deploy/vector_search/README_en.md b/deploy/vector_search/README_en.md new file mode 100644 index 000000000..b44d41bc1 --- /dev/null +++ b/deploy/vector_search/README_en.md @@ -0,0 +1,95 @@ +# Vector search + +## 1. 简介 + +Some vertical domain recognition tasks (e.g., vehicles, commodities, etc.) require a large number of recognized categories, and often use a retrieval-based approach to obtain matching predicted categories by performing a fast nearest neighbor search with query vectors and underlying library vectors. The vector search module provides the basic approximate nearest neighbor search algorithm based on Baidu's self-developed Möbius algorithm, a graph-based approximate nearest neighbor search algorithm for maximum inner product search (MIPS). This module provides python interface, supports numpy and tensor type vectors, and supports L2 and Inner Product distance calculation. + +Details of the Mobius algorithm can be found in the paper.([Möbius Transformation for Fast Inner Product Search on Graph](http://research.baidu.com/Public/uploads/5e189d36b5cf6.PDF), [Code](https://github.com/sunbelbd/mobius)) + +## 2. Installation + +### 2.1 Use the provided library files directly + +This folder contains the compiled `index.so` (compiled under gcc8.2.0 for Linux) and `index.dll` (compiled under gcc10.3.0 for Windows), which can be used directly, skipping sections 2.2 and 2.3. + +If the library files are not available due to a low gcc version or an incompatible environment, you need to manually compile the library files under a different platform. + +**Note:** Make sure that C++ compiler supports the C++11 standard. + +### 2.2 Compile and generate library files on Linux + +Run the following command to install gcc and g++. + +``` +sudo apt-get update +sudo apt-get upgrade -y +sudo apt-get install build-essential gcc g++ +``` + +Check the gcc version by the command `gcc -v`. + +`make` can be operated directly. If you wish to regenerate the `index.so`, you can first use `make clean` to clear the cache, and then use `make` to generate the updated library file. + +### 2.3 Compile and generate library files on Windows + +You need to install gcc compiler tool first, we recommend using [TDM-GCC](https://jmeubank.github.io/tdm-gcc/articles/2020-03/9.2.0-release), you can choose the right version on the official website. We recommend downloading [tdm64-gcc-10.3.0-2.exe](https://github.com/jmeubank/tdm-gcc/releases/download/v10.3.0-tdm64-2/tdm64-gcc-10.3.0-2.exe). + +After the downloading, follow the default installation steps to install. There are 3 points to note here: + +1. The vector search module depends on openmp, so you need to check the `openmp` installation option when going on to `choose components` step, otherwise it will report an error `libgomp.spec: No such file or directory`, [reference link](https://github.com/dmlc/xgboost/issues/1027) +2. When being asked whether to add to the system environment variables, it is recommended to check here, otherwise you need to add the system environment variables manually later. +3. The compile command is `make` on Linux and `mingw32-make` on Windows, so you need to distinguish here. + +After installation, you can open a command line terminal and check the gcc version with the command `gcc -v`. + +Run the command `mingw32-make` to generate the `index.dll` library file under the folder (deploy/vector_search). If you want to regenerate the `index.dll` file, you can first use `mingw32-make clean` to clear the cache, and then use `mingw32-make` to generate the updated library file. + +### 2.4 Compile and generate library files on MacOS + +Run the following command to install gcc and g++: + +``` +brew install gcc +``` + +#### Caution: + +1. If prompted with ``Error: Running Homebrew as root is extremely dangerous and no longer supported... `, refer to this [link](https://jingyan.baidu.com/article/e52e3615057a2840c60c519c.html) +2. If prompted with `Error: Failure while executing; `tar --extract --no-same-owner --file... ', refer to this [link](https://blog.csdn.net/Dawn510/article/details/117787358). + +After installation the compiled executable is copied under /usr/local/bin, look at the gcc in this folder: + +``` +ls /usr/local/bin/gcc* +``` + +The local gcc version is gcc-11, and the compile command is as follows: (If the local gcc version is gcc-9, the corresponding command should be `CXX=g++-9 make`) + +``` +CXX=g++-11 make +``` + +## 3. Quick use + +``` +import numpy as np +from interface import Graph_Index + +# Random sample generation +index_vectors = np.random.rand(100000,128).astype(np.float32) +query_vector = np.random.rand(128).astype(np.float32) +index_docs = ["ID_"+str(i) for i in range(100000)] + +# Initialize index structure +indexer = Graph_Index(dist_type="IP") #支持"IP"和"L2" +indexer.build(gallery_vectors=index_vectors, gallery_docs=index_docs, pq_size=100, index_path='test') + +# Query +scores, docs = indexer.search(query=query_vector, return_k=10, search_budget=100) +print(scores) +print(docs) + +# Save and load +indexer.dump(index_path="test") +indexer.load(index_path="test") +``` \ No newline at end of file diff --git a/docs/en/tutorials/config_description_en.md b/docs/en/tutorials/config_description_en.md new file mode 100644 index 000000000..a4f01d304 --- /dev/null +++ b/docs/en/tutorials/config_description_en.md @@ -0,0 +1,232 @@ +# Configuration Instruction + +------ + +## Introdction + +The parameters in the PaddleClas configuration file(`ppcls/configs/*.yaml`)are described for you to customize or modify the hyperparameter configuration more quickly. + +## Details + +### 1. Classification model + +Here the configuration of `ResNet50_vd` on`ImageNet-1k`is used as an example to explain the each parameter in detail. [Configure Path](https://github.com/PaddlePaddle/PaddleClas/blob/develop/ppcls/configs/ImageNet/ResNet/ResNet50_vd.yaml). + +#### 1.1Global Configuration + +| Parameter name | Specific meaning | Defult value | Optional value | +| ------------------ | ------------------------------------------------------- | ---------------- | ----------------- | +| checkpoints | Breakpoint model path for resuming training | null | str | +| pretrained_model | Pre-trained model path | null | str | +| output_dir | Save model path | "./output/" | str | +| save_interval | How many epochs to save the model at each interval | 1 | int | +| eval_during_train | Whether to evaluate at training | True | bool | +| eval_interval | How many epochs to evaluate at each interval | 1 | int | +| epochs | Total number of epochs in training | | int | +| print_batch_step | How many mini-batches to print out at each interval | 10 | int | +| use_visualdl | Whether to visualize the training process with visualdl | False | bool | +| image_shape | Image size | [3,224,224] | list, shape: (3,) | +| save_inference_dir | Inference model save path | "./inference" | str | +| eval_mode | Model of eval | "classification" | "retrieval" | + +**Note**:The http address of pre-trained model can be filled in the `pretrained_model` + +#### 1.2 Architecture + +| Parameter name | Specific meaning | Defult value | Optional value | +| -------------- | ----------------- | ------------ | --------------------- | +| name | Model Arch name | ResNet50 | PaddleClas model arch | +| class_num | Category number | 1000 | int | +| pretrained | Pre-trained model | False | bool, str | + +**Note**: Here pretrained can be set to True or False, so does the path of the weights. In addition, the pretrained is disabled when Global.pretrained_model is also set to the corresponding path. + +#### 1.3 Loss function + +| Parameter name | Specific meaning | Defult value | Optional value | +| -------------- | ------------------------------------------- | ------------ | ---------------------- | +| CELoss | cross-entropy loss function | —— | —— | +| CELoss.weight | The weight of CELoss in the whole Loss | 1.0 | float | +| CELoss.epsilon | The epsilon value of label_smooth in CELoss | 0.1 | float,between 0 and 1 | + +#### 1.4 Optimizer + +| Parameter name | Specific meaning | Defult value | Optional value | +| ----------------- | -------------------------------- | ------------ | -------------------------------------------------- | +| name | optimizer method name | "Momentum" | Other optimizer including "RmsProp" | +| momentum | momentum value | 0.9 | float | +| lr.name | method of dropping learning rate | "Cosine" | Other dropping methods of "Linear" and "Piecewise" | +| lr.learning_rate | initial value of learning rate | 0.1 | float | +| lr.warmup_epoch | warmup rounds | 0 | int,如5 | +| regularizer.name | regularization method name | "L2" | ["L1", "L2"] | +| regularizer.coeff | regularization factor | 0.00007 | float | + +**Note**:The new parameters may be different when `lr.name` is different , as when `lr.name=Piecewise`, the following parameters need to be added: + +``` + lr: + name: Piecewise + learning_rate: 0.1 + decay_epochs: [30, 60, 90] + values: [0.1, 0.01, 0.001, 0.0001] +``` + +Referring to [learning_rate.py](https://github.com/PaddlePaddle/PaddleClas/blob/develop/ppcls/optimizer/learning_rate.py) for adding method and parameters. + +#### 1.5 Data reading module(DataLoader) + +##### 1.5.1 dataset + +| Parameter name | Specific meaning | Defult value | Optional value | +| ------------------- | ------------------------------------ | ----------------------------------- | ------------------------------ | +| name | 读取数据的类的名字 | ImageNetDataset | VeriWild等其他读取数据类的名字 | +| image_root | The path where the dataset is stored | ./dataset/ILSVRC2012/ | str | +| cls_label_path | data label list | ./dataset/ILSVRC2012/train_list.txt | str | +| transform_ops | data preprocessing for single images | —— | —— | +| batch_transform_ops | Data preprocessing for batch images | —— | —— | + +The parameter meaning of transform_ops: + +| Function name | Parameter name | Specific meaning | +| -------------- | -------------- | --------------------- | +| DecodeImage | to_rgb | data to RGB | +| | channel_first | image data by CHW | +| RandCropImage | size | Random crop | +| RandFlipImage | | Random flip | +| NormalizeImage | scale | Normalize scale value | +| | mean | Normalize mean value | +| | std | normalized variance | +| | order | Normalize order | +| CropImage | size | crop size | +| ResizeImage | resize_short | resize by short edge | + +The parameter meaning of batch_transform_ops: + +| Function name | Parameter name | Specific meaning | +| ------------- | -------------- | --------------------------------------- | +| MixupOperator | alpha | Mixup parameter value,该值越大增强越强 | + +##### 1.5.2 sampler + +| Parameter name | Specific meaning | Default value | Optional value | +| -------------- | ------------------------------------------------------------ | ----------------------- | -------------------------------------------------- | +| name | sampler type | DistributedBatchSampler | DistributedRandomIdentitySampler and other Sampler | +| batch_size | batch size | 64 | int | +| drop_last | Whether to drop the last data that does reach the batch-size | False | bool | +| shuffle | whether to shuffle the data | True | bool | + +##### 1.5.3 loader + +| Parameter name | Specific meaning | Default meaning | Optional meaning | +| ----------------- | ---------------------------- | --------------- | ---------------- | +| num_workers | Number of data read threads | 4 | int | +| use_shared_memory | Whether to use shared memory | True | bool | + +#### 1.6 Evaluation metric + +| Parameter name | Specific meaning | Default meaning | Optional meaning | +| -------------- | ---------------- | --------------- | ---------------- | +| TopkAcc | TopkAcc | [1, 5] | list, int | + +#### 1.7 Inference + +| Parameter name | Specific meaning | Default meaning | Optional meaning | +| ----------------------------- | --------------------------------- | ------------------------------------- | ---------------- | +| infer_imgs | Image address to be inferred | docs/images/whl/demo.jpg | str | +| batch_size | batch size | 10 | int | +| PostProcess.name | Post-process name | Topk | str | +| PostProcess.topk | topk value | 5 | int | +| PostProcess.class_id_map_file | mapping file of class id and name | ppcls/utils/imagenet1k_label_list.txt | str | + +**Note**:The interpretation of `transforms` in the Infer module refers to the interpretation of`transform_ops`in the dataset in the data reading module. + +### 2.Distillation model + +**Note**:Here the training configuration of `MobileNetV3_large_x1_0` on `ImageNet-1k` distilled MobileNetV3_small_x1_0 is used as an example to explain the meaning of each parameter in detail. [Configure path](https://github.com/PaddlePaddle/PaddleClas/blob/develop/ppcls/configs/ImageNet/Distillation/mv3_large_x1_0_distill_mv3_small_x1_0.yaml). Only parameters that are distinct from the classification model are introduced here. + +#### 2.1 Architecture + +| Parameter name | Specific meaning | Default meaning | Optional meaning | +| ------------------ | --------------------------------------------------------- | ---------------------- | ---------------------------------- | +| name | model arch name | DistillationModel | —— | +| class_num | category number | 1000 | int | +| freeze_params_list | freeze_params_list | [True, False] | list | +| models | model list | [Teacher, Student] | list | +| Teacher.name | teacher model name | MobileNetV3_large_x1_0 | PaddleClas model | +| Teacher.pretrained | teacher model pre-trained weights | True | Boolean or pre-trained weight path | +| Teacher.use_ssld | whether teacher model pretrained weights are ssld weights | True | Boolean | +| infer_model_name | type of the model being inferred | Student | Teacher | + +**Note**: + +1. list is represented in yaml as follows: + +``` + freeze_params_list: + - True + - False +``` + +2.Student's parameters are similar and will not be repeated. + +#### 2.2 Loss function + +| Parameter name | Specific meaning | Default meaning | Optional meaning | +| ----------------------------------- | ------------------------------------------------------------ | --------------- | ---------------- | +| DistillationCELoss | Distillation's cross-entropy loss function | —— | —— | +| DistillationCELoss.weight | Loss weight | 1.0 | float | +| DistillationCELoss.model_name_pairs | ["Student", "Teacher"] | —— | —— | +| DistillationGTCELoss.weight | Distillation's cross-entropy loss function of model and true Label | —— | —— | +| DistillationGTCELos.weight | Loss weight | 1.0 | float | +| DistillationCELoss.model_names | Model names with real label for cross-entropy | ["Student"] | —— | + +#### 2.3 Evaluation metric + +| Parameter name | Specific meaning | Default meaning | Optional meaning | +| ----------------------------- | ------------------- | ---------------------------- | ---------------- | +| DistillationTopkAcc | DistillationTopkAcc | including model_key and topk | —— | +| DistillationTopkAcc.model_key | the evaluated model | "Student" | "Teacher" | +| DistillationTopkAcc.topk | Topk value | [1, 5] | list, int | + +**Note**: `DistillationTopkAcc` has the same meaning as `TopkAcc`, except that it is only used in distillation tasks. + +### 3. Recognition model + +**Note**:The training configuration of`ResNet50` on`LogoDet-3k` is used here as an example to explain the meaning of each parameter in detail. [configure path](https://github.com/PaddlePaddle/PaddleClas/blob/develop/ppcls/configs/Logo/ResNet50_ReID.yaml). Only parameters that are distinct from the classification model are presented here. + +#### 3.1 Architechture + +| Parameter name | Specific meaning | Default meaning | Optional meaning | +| ---------------------- | ------------------------------------------------------------ | --------------------------- | ------------------------------------------------------------ | +| name | Model arch | "RecModel" | ["RecModel"] | +| infer_output_key | inference output value | “feature” | ["feature", "logits"] | +| infer_add_softmax | softmaxwhether to add softmax to infercne | False | [True, False] | +| Backbone.name | Backbone name | ResNet50_last_stage_stride1 | other backbone provided by PaddleClas | +| Backbone.pretrained | Backbone pre-trained model | True | Boolean value or pre-trained model path | +| BackboneStopLayer.name | The name of the output layer in Backbone | True | The`full_name`of the feature output layer in Backbone | +| Neck.name | The name of the Neck part | VehicleNeck | the dictionary structure to be passed in, the specific input parameters for the Neck network layer | +| Neck.in_channels | Input dimension size of the Neck part | 2048 | the size is the same as BackboneStopLayer.name | +| Neck.out_channels | Output the dimension size of the Neck part, i.e. feature dimension size | 512 | int | +| Head.name | Network Head part nam | CircleMargin | Arcmargin. Etc | +| Head.embedding_size | Feature dimension size | 512 | Consistent with Neck.out_channels | +| Head.class_num | number of classes | 3000 | int | +| Head.margin | margin value in CircleMargin | 0.35 | float | +| Head.scale | scale value in CircleMargin | 64 | int | + +**Note**: + +1.In PaddleClas, the `Neck` part is the connection part between Backbone and embedding layer, and `Head` part is the connection part between embedding layer and classification layer.。 + +2.`BackboneStopLayer.name can be obtained by visualizing the model, visualization can be referred to [Netron](https://github.com/lutzroeder/netron)或者[visualdl](https://github.com/PaddlePaddle/VisualDL). + +3.Calling tools/export_model.py will convert the model weights to inference model, where the infer_add_softmax parameter will control whether to add the Softmax activation function afterwards, the code default is True (the last output layer in the classification task will be connected to the Softmax activation function). In the recognition task, the activation function is not required for the feature layer, so it should be set to False here. + + + + +#### 3.2 Evaluation metric + +| Parameter name | Specific meaning | Default meaning | Optional meaning | +| -------------- | --------------------------- | --------------- | ---------------- | +| Recallk | Recall rate | [1, 5] | list, int | +| mAP | Average retrieval precision | None | None | \ No newline at end of file diff --git a/docs/en/tutorials/config_en.md b/docs/en/tutorials/config_en.md deleted file mode 100644 index 05663c7ec..000000000 --- a/docs/en/tutorials/config_en.md +++ /dev/null @@ -1,94 +0,0 @@ -# Configuration - ---- - -## Introduction - -This document introduces the configuration(filed in `config/*.yaml`) of PaddleClas. - -* Note: Some parameters do not appear in the yaml file (because they are not used for this file). During training or validation, you can use the command `-o` to update or add the specified parameters. For the example `-o checkpoints=./ckp_path/ppcls`, it means that the parameter `checkpoints` will be updated or added using the value `./ckp_path/ppcls`. - -### Basic - -| name | detail | default value | optional value | -|:---:|:---:|:---:|:---:| -| mode | mode | "train" | ["train"," valid"] | -| checkpoints | checkpoint model path for resuming training process | "" | Str | -| last_epoch | last epoch for the training,used with checkpoints | -1 | int | -| pretrained_model | pretrained model path | "" | Str | -| load_static_weights | whether the pretrained model is saved in static mode | False | bool | -| model_save_dir | model stored path | "" | Str | -| classes_num | class number | 1000 | int | -| total_images | total images | 1281167 | int | -| save_interval | save interval | 1 | int | -| validate | whether to validate when training | TRUE | bool | -| valid_interval | valid interval | 1 | int | -| epochs | epoch | | int | -| topk | K value | 5 | int | -| image_shape | image size | [3,224,224] | list, shape: (3,) | -| use_mix | whether to use mixup | False | ['True', 'False'] | -| ls_epsilon | label_smoothing epsilon value| 0 | float | -| use_distillation | whether to use SSLD distillation training | False | bool | - - -## ARCHITECTURE - -| name | detail | default value | optional value | -|:---:|:---:|:---:|:---:| -| name | model name | "ResNet50_vd" | one of 23 architectures | -| params | model parameters | {} | extra dictionary for the model structure, parameters such as `padding_type` in EfficientNet can be set here | - - -### LEARNING_RATE - -| name | detail | default value |Optional value | -|:---:|:---:|:---:|:---:| -| function | decay type | "Linear" | ["Linear", "Cosine",
"Piecewise", "CosineWarmup"] | -| params.lr | initial learning rate | 0.1 | float | -| params.decay_epochs | milestone in piecewisedecay | | list | -| params.gamma | gamma in piecewisedecay | 0.1 | float | -| params.warmup_epoch | warmup epoch | 5 | int | -| parmas.steps | decay steps in lineardecay | 100 | int | -| params.end_lr | end lr in lineardecay | 0 | float | - -### OPTIMIZER - -| name | detail | default value | optional value | -|:---:|:---:|:---:|:---:| -| function | optimizer name | "Momentum" | ["Momentum", "RmsProp"] | -| params.momentum | momentum value | 0.9 | float | -| regularizer.function | regularizer method name | "L2" | ["L1", "L2"] | -| regularizer.factor | regularizer factor | 0.0001 | float | - -### reader - -| name | detail | -|:---:|:---:| -| batch_size | batch size | -| num_workers | worker number | -| file_list | train list path | -| data_dir | train dataset path | -| shuffle_seed | seed | - -processing - -| function name | attribute name | detail | -|:---:|:---:|:---:| -| DecodeImage | to_rgb | decode to RGB | -| | to_np | to numpy | -| | channel_first | Channel first | -| RandCropImage | size | random crop | -| RandFlipImage | | random flip | -| NormalizeImage | scale | normalize image | -| | mean | mean | -| | std | std | -| | order | order | -| ToCHWImage | | to CHW | -| CropImage | size | crop size | -| ResizeImage | resize_short | resize according to short size | - -mix preprocessing - -| name| detail| -|:---:|:---:| -| MixupOperator.alpha | alpha value in mixup| From 13293f9898f8acb24b4d0d4ab2992ec7502f6bc6 Mon Sep 17 00:00:00 2001 From: cuicheng01 Date: Thu, 22 Jul 2021 05:59:06 +0000 Subject: [PATCH 2/6] Update config_description_en.md --- docs/en/tutorials/config_description_en.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/en/tutorials/config_description_en.md b/docs/en/tutorials/config_description_en.md index a4f01d304..d490552b5 100644 --- a/docs/en/tutorials/config_description_en.md +++ b/docs/en/tutorials/config_description_en.md @@ -79,7 +79,7 @@ Referring to [learning_rate.py](https://github.com/PaddlePaddle/PaddleClas/blob/ | Parameter name | Specific meaning | Defult value | Optional value | | ------------------- | ------------------------------------ | ----------------------------------- | ------------------------------ | -| name | 读取数据的类的名字 | ImageNetDataset | VeriWild等其他读取数据类的名字 | +| name | The name of the class to read the data | ImageNetDataset | VeriWild and other Dataet type | | image_root | The path where the dataset is stored | ./dataset/ILSVRC2012/ | str | | cls_label_path | data label list | ./dataset/ILSVRC2012/train_list.txt | str | | transform_ops | data preprocessing for single images | —— | —— | @@ -104,7 +104,7 @@ The parameter meaning of batch_transform_ops: | Function name | Parameter name | Specific meaning | | ------------- | -------------- | --------------------------------------- | -| MixupOperator | alpha | Mixup parameter value,该值越大增强越强 | +| MixupOperator | alpha | Mixup parameter value,the larger the value, the stronger the augment | ##### 1.5.2 sampler @@ -217,7 +217,7 @@ The parameter meaning of batch_transform_ops: 1.In PaddleClas, the `Neck` part is the connection part between Backbone and embedding layer, and `Head` part is the connection part between embedding layer and classification layer.。 -2.`BackboneStopLayer.name can be obtained by visualizing the model, visualization can be referred to [Netron](https://github.com/lutzroeder/netron)或者[visualdl](https://github.com/PaddlePaddle/VisualDL). +2.`BackboneStopLayer.name` can be obtained by visualizing the model, visualization can be referred to [Netron](https://github.com/lutzroeder/netron) or [visualdl](https://github.com/PaddlePaddle/VisualDL). 3.Calling tools/export_model.py will convert the model weights to inference model, where the infer_add_softmax parameter will control whether to add the Softmax activation function afterwards, the code default is True (the last output layer in the classification task will be connected to the Softmax activation function). In the recognition task, the activation function is not required for the feature layer, so it should be set to False here. @@ -229,4 +229,4 @@ The parameter meaning of batch_transform_ops: | Parameter name | Specific meaning | Default meaning | Optional meaning | | -------------- | --------------------------- | --------------- | ---------------- | | Recallk | Recall rate | [1, 5] | list, int | -| mAP | Average retrieval precision | None | None | \ No newline at end of file +| mAP | Average retrieval precision | None | None | From de5de91bc74f14b3e57c476c7c42239cc2e9548e Mon Sep 17 00:00:00 2001 From: cuicheng01 Date: Thu, 22 Jul 2021 06:00:55 +0000 Subject: [PATCH 3/6] Update config_description_en.md --- docs/en/tutorials/config_description_en.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/tutorials/config_description_en.md b/docs/en/tutorials/config_description_en.md index d490552b5..d510df753 100644 --- a/docs/en/tutorials/config_description_en.md +++ b/docs/en/tutorials/config_description_en.md @@ -57,7 +57,7 @@ Here the configuration of `ResNet50_vd` on`ImageNet-1k`is used as an example to | momentum | momentum value | 0.9 | float | | lr.name | method of dropping learning rate | "Cosine" | Other dropping methods of "Linear" and "Piecewise" | | lr.learning_rate | initial value of learning rate | 0.1 | float | -| lr.warmup_epoch | warmup rounds | 0 | int,如5 | +| lr.warmup_epoch | warmup rounds | 0 | int,such as 5 | | regularizer.name | regularization method name | "L2" | ["L1", "L2"] | | regularizer.coeff | regularization factor | 0.00007 | float | From 2c234de254d3298b15c686a405d187accd11691d Mon Sep 17 00:00:00 2001 From: cuicheng01 Date: Thu, 22 Jul 2021 06:02:45 +0000 Subject: [PATCH 4/6] Update vector_search/README_en.md --- deploy/vector_search/README_en.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/vector_search/README_en.md b/deploy/vector_search/README_en.md index b44d41bc1..4ab2c7a1c 100644 --- a/deploy/vector_search/README_en.md +++ b/deploy/vector_search/README_en.md @@ -81,7 +81,7 @@ query_vector = np.random.rand(128).astype(np.float32) index_docs = ["ID_"+str(i) for i in range(100000)] # Initialize index structure -indexer = Graph_Index(dist_type="IP") #支持"IP"和"L2" +indexer = Graph_Index(dist_type="IP") #support "IP" and "L2" indexer.build(gallery_vectors=index_vectors, gallery_docs=index_docs, pq_size=100, index_path='test') # Query @@ -92,4 +92,4 @@ print(docs) # Save and load indexer.dump(index_path="test") indexer.load(index_path="test") -``` \ No newline at end of file +``` From 45526c6ba735defd2620f3a3dbc0c382ff3dcfae Mon Sep 17 00:00:00 2001 From: cuicheng01 <45199522+cuicheng01@users.noreply.github.com> Date: Tue, 27 Jul 2021 19:39:02 +0800 Subject: [PATCH 5/6] Update README_en.md --- deploy/vector_search/README_en.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/vector_search/README_en.md b/deploy/vector_search/README_en.md index 4ab2c7a1c..616223b6a 100644 --- a/deploy/vector_search/README_en.md +++ b/deploy/vector_search/README_en.md @@ -1,6 +1,6 @@ # Vector search -## 1. 简介 +## 1. Introduction Some vertical domain recognition tasks (e.g., vehicles, commodities, etc.) require a large number of recognized categories, and often use a retrieval-based approach to obtain matching predicted categories by performing a fast nearest neighbor search with query vectors and underlying library vectors. The vector search module provides the basic approximate nearest neighbor search algorithm based on Baidu's self-developed Möbius algorithm, a graph-based approximate nearest neighbor search algorithm for maximum inner product search (MIPS). This module provides python interface, supports numpy and tensor type vectors, and supports L2 and Inner Product distance calculation. @@ -54,7 +54,7 @@ brew install gcc #### Caution: -1. If prompted with ``Error: Running Homebrew as root is extremely dangerous and no longer supported... `, refer to this [link](https://jingyan.baidu.com/article/e52e3615057a2840c60c519c.html) +1. If prompted with `Error: Running Homebrew as root is extremely dangerous and no longer supported... `, refer to this [link](https://jingyan.baidu.com/article/e52e3615057a2840c60c519c.html) 2. If prompted with `Error: Failure while executing; `tar --extract --no-same-owner --file... ', refer to this [link](https://blog.csdn.net/Dawn510/article/details/117787358). After installation the compiled executable is copied under /usr/local/bin, look at the gcc in this folder: From fb390f2e7c6ca56aa1e504af7b030a8e2729890d Mon Sep 17 00:00:00 2001 From: cuicheng01 <45199522+cuicheng01@users.noreply.github.com> Date: Tue, 27 Jul 2021 20:01:57 +0800 Subject: [PATCH 6/6] Update README_en.md --- deploy/vector_search/README_en.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/vector_search/README_en.md b/deploy/vector_search/README_en.md index 616223b6a..20b253948 100644 --- a/deploy/vector_search/README_en.md +++ b/deploy/vector_search/README_en.md @@ -55,7 +55,7 @@ brew install gcc #### Caution: 1. If prompted with `Error: Running Homebrew as root is extremely dangerous and no longer supported... `, refer to this [link](https://jingyan.baidu.com/article/e52e3615057a2840c60c519c.html) -2. If prompted with `Error: Failure while executing; `tar --extract --no-same-owner --file... ', refer to this [link](https://blog.csdn.net/Dawn510/article/details/117787358). +2. If prompted with `Error: Failure while executing; tar --extract --no-same-owner --file... `, refer to this [link](https://blog.csdn.net/Dawn510/article/details/117787358). After installation the compiled executable is copied under /usr/local/bin, look at the gcc in this folder: