Browse Source

add version upgrade when deploy

FlyingQianMM 5 years ago
parent
commit
8520eac716

+ 9 - 0
deploy/cpp/src/paddlex.cpp

@@ -65,6 +65,15 @@ bool Model::load_config(const std::string& model_dir) {
   YAML::Node config = YAML::LoadFile(yaml_file);
   YAML::Node config = YAML::LoadFile(yaml_file);
   type = config["_Attributes"]["model_type"].as<std::string>();
   type = config["_Attributes"]["model_type"].as<std::string>();
   name = config["Model"].as<std::string>();
   name = config["Model"].as<std::string>();
+  std::string version = config["version"].as<std::string>();
+  if (version[0] == '0') {
+    std::cerr << "[Init] Version of the loaded model is lower than 1.0.0, deployment "
+              << "cannot be done, please refer to "
+              << "https://github.com/PaddlePaddle/PaddleX/blob/develop/docs/tutorials/deploy/upgrade_version.md "
+              << "to transfer version."
+              << std::endl;
+    return false;
+  }
   bool to_rgb = true;
   bool to_rgb = true;
   if (config["TransformsMode"].IsDefined()) {
   if (config["TransformsMode"].IsDefined()) {
     std::string mode = config["TransformsMode"].as<std::string>();
     std::string mode = config["TransformsMode"].as<std::string>();

+ 1 - 0
docs/tutorials/deploy/deploy_lite.md

@@ -9,6 +9,7 @@ pip install paddlelite
 step 2: 将PaddleX模型导出为inference模型
 step 2: 将PaddleX模型导出为inference模型
 
 
 参考[导出inference模型](deploy_server/deploy_python.html#inference)将模型导出为inference格式模型。
 参考[导出inference模型](deploy_server/deploy_python.html#inference)将模型导出为inference格式模型。
+**注意:由于PaddleX代码的持续更新,版本低于1.0.0的模型暂时无法直接用于预测部署,参考[模型版本升级](../upgrade_version.md)对模型版本进行升级。**
 
 
 step 3: 将inference模型转换成PaddleLite模型
 step 3: 将inference模型转换成PaddleLite模型
 
 

+ 2 - 1
docs/tutorials/deploy/deploy_server/deploy_cpp/deploy_cpp_linux.md

@@ -104,7 +104,8 @@ make
 
 
 ### Step5: 预测及可视化
 ### Step5: 预测及可视化
 
 
-参考[导出inference模型](../deploy_python.html#inference)将模型导出为inference格式模型。
+参考[导出inference模型](../../deploy_python.html#inference)将模型导出为inference格式模型。
+**注意:由于PaddleX代码的持续更新,版本低于1.0.0的模型暂时无法直接用于预测部署,参考[模型版本升级](../upgrade_version.md)对模型版本进行升级。**
 
 
 编译成功后,预测demo的可执行程序分别为`build/demo/detector`,`build/demo/classifer`,`build/demo/segmenter`,用户可根据自己的模型类型选择,其主要命令参数说明如下:
 编译成功后,预测demo的可执行程序分别为`build/demo/detector`,`build/demo/classifer`,`build/demo/segmenter`,用户可根据自己的模型类型选择,其主要命令参数说明如下:
 
 

+ 1 - 0
docs/tutorials/deploy/deploy_server/deploy_cpp/deploy_cpp_win_vs2019.md

@@ -100,6 +100,7 @@ PaddlePaddle C++ 预测库针对不同的`CPU`,`CUDA`,以及是否支持Tens
 ### Step5: 预测及可视化
 ### Step5: 预测及可视化
 
 
 参考[导出inference模型](../deploy_python.html#inference)将模型导出为inference格式模型。
 参考[导出inference模型](../deploy_python.html#inference)将模型导出为inference格式模型。
+**注意:由于PaddleX代码的持续更新,版本低于1.0.0的模型暂时无法直接用于预测部署,参考[模型版本升级](../upgrade_version.md)对模型版本进行升级。**
 
 
 上述`Visual Studio 2019`编译产出的可执行文件在`out\build\x64-Release`目录下,打开`cmd`,并切换到该目录:
 上述`Visual Studio 2019`编译产出的可执行文件在`out\build\x64-Release`目录下,打开`cmd`,并切换到该目录:
 
 

+ 2 - 0
docs/tutorials/deploy/deploy_server/deploy_python.md

@@ -20,6 +20,8 @@ paddlex --export_inference --model_dir=./xiaoduxiong_epoch_12 --save_dir=./infer
 ```
 ```
 
 
 ## 预测部署
 ## 预测部署
+**注意:由于PaddleX代码的持续更新,版本低于1.0.0的模型暂时无法直接用于预测部署,参考[模型版本升级](../upgrade_version.md)对模型版本进行升级。**
+
 > 点击下载测试图片 [xiaoduxiong_test_image.tar.gz](https://bj.bcebos.com/paddlex/datasets/xiaoduxiong_test_image.tar.gz)
 > 点击下载测试图片 [xiaoduxiong_test_image.tar.gz](https://bj.bcebos.com/paddlex/datasets/xiaoduxiong_test_image.tar.gz)
 
 
 ```
 ```

+ 1 - 1
docs/tutorials/deploy/deploy_server/encryption.md

@@ -61,7 +61,7 @@ paddlex-encryption
 ./paddlex-encryption/tool/paddlex_encrypt_tool -model_dir /path/to/paddlex_inference_model -save_dir /path/to/paddlex_encrypted_model
 ./paddlex-encryption/tool/paddlex_encrypt_tool -model_dir /path/to/paddlex_inference_model -save_dir /path/to/paddlex_encrypted_model
 ```
 ```
 
 
-`-model_dir`用于指定inference模型路径(参考[导出inference模型](deploy_python.html#inference)将模型导出为inference格式模型),可使用[导出小度熊识别模型](deploy_python.html#inference)中导出的`inference_model`。加密完成后,加密过的模型会保存至指定的`-save_dir`下,包含`__model__.encrypted`、`__params__.encrypted`和`model.yml`三个文件,同时生成密钥信息,命令输出如下图所示,密钥为`kLAl1qOs5uRbFt0/RrIDTZW2+tOf5bzvUIaHGF8lJ1c=`
+`-model_dir`用于指定inference模型路径(参考[导出inference模型](deploy_python.html#inference)将模型导出为inference格式模型),可使用[导出小度熊识别模型](deploy_python.html#inference)中导出的`inference_model`(**注意**:由于PaddleX代码的持续更新,版本低于1.0.0的模型暂时无法直接用于预测部署,参考[模型版本升级](../upgrade_version.md)对模型版本进行升级。)。加密完成后,加密过的模型会保存至指定的`-save_dir`下,包含`__model__.encrypted`、`__params__.encrypted`和`model.yml`三个文件,同时生成密钥信息,命令输出如下图所示,密钥为`kLAl1qOs5uRbFt0/RrIDTZW2+tOf5bzvUIaHGF8lJ1c=`
 
 
 ![](../images/encrypt.png)
 ![](../images/encrypt.png)