提交 f9faa71c 编写于 作者: W wuzewu

update demo and add README

上级 1186c31f
## 关于图像分类
https://github.com/PaddlePaddle/models/tree/develop/fluid/PaddleCV/image_classification
## 创建Module
本目录包含了创建一个基于ImageNet 2012数据集预训练的图像分类模型(ResNet/MobileNet)的Module的脚本。
通过以下脚本来一键创建一个ResNet50 Module
```shell
sh create_module.sh
```
NOTE:
* 如果进行下面示例的脚本或者代码,请确保执行上述脚本
* 关于创建Module的API和细节,请查看`create_module.py`
## 使用Module预测
该Module创建完成后,可以通过命令行或者python API两种方式进行预测
### 命令行方式
`infer.sh`给出了使用命令行调用Module预测的示例脚本
通过以下命令试验下效果
```shell
sh infer.sh
```
### 通过python API
`infer_by_code.py`给出了使用python API调用Module预测的示例代码
通过以下命令试验下效果
```shell
python infer_by_code.py
```
## 对预训练模型进行Finetune
通过以下命令进行Finetune
```shell
sh finetune.sh
```
更多关于Finetune的资料,请查看[基于PaddleHub的迁移学习](https://github.com/PaddlePaddle/PaddleHub/blob/develop/docs/transfer_learning_turtorial.md)
...@@ -2,9 +2,6 @@ ...@@ -2,9 +2,6 @@
set -o nounset set -o nounset
set -o errexit set -o errexit
script_path=$(cd `dirname $0`; pwd)
cd $script_path
model_name="ResNet50" model_name="ResNet50"
while getopts "m:" options while getopts "m:" options
...@@ -18,4 +15,24 @@ do ...@@ -18,4 +15,24 @@ do
esac esac
done done
script_path=$(cd `dirname $0`; pwd)
module_path=hub_module_${model_name}
if [ -d $script_path/$module_path ]
then
echo "$module_path already existed!"
exit 0
fi
cd $script_path/resources/
if [ ! -d ${model_name}_pretrained ]
then
sh download.sh $model_name
fi
cd $script_path/
python create_module.py --pretrained_model=resources/${model_name}_pretrained --model ${model_name} python create_module.py --pretrained_model=resources/${model_name}_pretrained --model ${model_name}
echo "Successfully create $module_path"
...@@ -4,10 +4,6 @@ set -o errexit ...@@ -4,10 +4,6 @@ set -o errexit
script_path=$(cd `dirname $0`; pwd) script_path=$(cd `dirname $0`; pwd)
cd $script_path cd $script_path
hub_module_path=hub_module_ResNet50
cd resources
sh download.sh ResNet50
cd ..
sh create_module.sh
sh create_module.sh
python retrain.py python retrain.py
## 关于LAC
https://github.com/baidu/lac
## 创建Module
本目录包含了创建一个基于LAC预训练模型的Module的脚本。
通过以下脚本来一键创建一个LAC Module
```shell
sh create_module.sh
```
NOTE:
* 如果进行下面示例的脚本或者代码,请确保执行上述脚本
* 关于创建Module的API和细节,请查看`create_module.py`
## 使用Module预测
该Module创建完成后,可以通过命令行或者python API两种方式进行预测
### 命令行方式
`infer.sh`给出了使用命令行调用Module预测的示例脚本
通过以下命令试验下效果
```shell
sh infer.sh
```
### 通过python API
`infer_by_code.py`给出了使用python API调用Module预测的示例代码
通过以下命令试验下效果
```shell
python infer_by_code.py
```
...@@ -3,6 +3,23 @@ set -o nounset ...@@ -3,6 +3,23 @@ set -o nounset
set -o errexit set -o errexit
script_path=$(cd `dirname $0`; pwd) script_path=$(cd `dirname $0`; pwd)
cd $script_path module_path=hub_module_lac
if [ -d $script_path/$module_path ]
then
echo "$module_path already existed!"
exit 0
fi
cd $script_path/resources/
if [ ! -d senta_model ]
then
sh download.sh
fi
cd $script_path/
python create_module.py python create_module.py
echo "Successfully create $module_path"
python ../../paddle_hub/commands/hub.py run hub_module_lac/ --signature lexical_analysis --config resources/test/test.yml --dataset resources/test/test.csv python ../../paddle_hub/commands/hub.py run hub_module_lac/ --signature lexical_analysis --config resources/test/test.yml --input_file resources/test/test.csv
import os
import paddle_hub as hub
def infer_with_input_text():
# get lac module
lac = hub.Module(module_dir="hub_module_lac")
test_text = ["今天是个好日子", "天气预报说今天要下雨", "下一班地铁马上就要到了"]
# get the input keys for signature 'lexical_analysis'
data_format = lac.processor.data_format(sign_name='lexical_analysis')
key = list(data_format.keys())[0]
# set input dict
input_dict = {key: test_text}
# execute predict and print the result
results = lac.lexical_analysis(data=input_dict)
for index, result in enumerate(results):
hub.logger.info(
"sentence %d segmented result: %s" % (index + 1, result['word']))
def infer_with_input_file():
# get lac module
lac = hub.Module(module_dir="hub_module_lac")
# get the input keys for signature 'lexical_analysis'
data_format = lac.processor.data_format(sign_name='lexical_analysis')
key = list(data_format.keys())[0]
# parse input file
test_csv = os.path.join("resources", "test", "test.csv")
test_text = hub.io.reader.csv_reader.read(test_csv)["TEXT_INPUT"]
# set input dict
input_dict = {key: test_text}
results = lac.lexical_analysis(data=input_dict)
for index, result in enumerate(results):
hub.logger.info(
"sentence %d segmented result: %s" % (index + 1, result['word']))
if __name__ == "__main__":
infer_with_input_text()
## 关于senta
https://github.com/baidu/Senta
## 创建Module
本目录包含了创建一个基于senta预训练模型的Module的脚本。
通过以下脚本来一键创建一个senta Module
```shell
sh create_module.sh
```
NOTE:
* 如果进行下面示例的脚本或者代码,请确保执行上述脚本
* 关于创建Module的API和细节,请查看`create_module.py`
## 使用Module预测
该Module创建完成后,可以通过命令行或者python API两种方式进行预测
### 命令行方式
`infer.sh`给出了使用命令行调用Module预测的示例脚本
通过以下命令试验下效果
```shell
sh infer.sh
```
### 通过python API
`infer_by_code.py`给出了使用python API调用Module预测的示例代码
通过以下命令试验下效果
```shell
python infer_by_code.py
```
...@@ -3,6 +3,23 @@ set -o nounset ...@@ -3,6 +3,23 @@ set -o nounset
set -o errexit set -o errexit
script_path=$(cd `dirname $0`; pwd) script_path=$(cd `dirname $0`; pwd)
cd $script_path module_path=hub_module_senta
if [ -d $script_path/$module_path ]
then
echo "$module_path already existed!"
exit 0
fi
cd $script_path/resources/
if [ ! -d senta_model ]
then
sh download.sh
fi
cd $script_path/
python create_module.py python create_module.py
echo "Successfully create $module_path"
import os
import paddle_hub as hub
def infer_with_input_text():
# get senta module
senta = hub.Module(module_dir="hub_module_senta")
test_text = ["这家餐厅很好吃", "这部电影真的很差劲"]
# get the input keys for signature 'sentiment_classify'
data_format = senta.processor.data_format(sign_name='sentiment_classify')
key = list(data_format.keys())[0]
# set input dict
input_dict = {key: test_text}
# execute predict and print the result
results = senta.sentiment_classify(data=input_dict)
for index, result in enumerate(results):
hub.logger.info("sentence %d segmented result: %s" %
(index + 1, result['sentiment_key']))
def infer_with_input_file():
# get senta module
senta = hub.Module(module_dir="hub_module_senta")
# get the input keys for signature 'sentiment_classify'
data_format = senta.processor.data_format(sign_name='sentiment_classify')
key = list(data_format.keys())[0]
# parse input file
test_csv = os.path.join("resources", "test", "test.csv")
test_text = hub.io.reader.csv_reader.read(test_csv)["TEXT_INPUT"]
# set input dict
input_dict = {key: test_text}
results = senta.sentiment_classify(data=input_dict)
for index, result in enumerate(results):
hub.logger.info("sentence %d segmented result: %s" %
(index + 1, result['sentiment_key']))
if __name__ == "__main__":
infer_with_input_text()
## 关于SSD
https://github.com/PaddlePaddle/models/tree/develop/fluid/PaddleCV/object_detection
## 创建Module
本目录包含了创建一个基于POSCAL VOC数据集预训练的SSD模型的Module的脚本。
通过以下脚本来一键创建一个SSD Module
```shell
sh create_module.sh
```
NOTE:
* 如果进行下面示例的脚本或者代码,请确保执行上述脚本
* 关于创建Module的API和细节,请查看`create_module.py`
## 使用Module预测
该Module创建完成后,可以通过命令行或者python API两种方式进行预测
### 命令行方式
`infer.sh`给出了使用命令行调用Module预测的示例脚本
通过以下命令试验下效果
```shell
sh infer.sh
```
### 通过python API
`infer_by_code.py`给出了使用python API调用Module预测的示例代码
通过以下命令试验下效果
```shell
python infer_by_code.py
```
...@@ -3,6 +3,23 @@ set -o nounset ...@@ -3,6 +3,23 @@ set -o nounset
set -o errexit set -o errexit
script_path=$(cd `dirname $0`; pwd) script_path=$(cd `dirname $0`; pwd)
cd $script_path module_path=hub_module_ssd
if [ -d $script_path/$module_path ]
then
echo "$module_path already existed!"
exit 0
fi
cd $script_path/resources/
if [ ! -d ssd_mobilenet_v1_pascalvoc ]
then
sh download.sh
fi
cd $script_path/
python create_module.py python create_module.py
echo "Successfully create $module_path"
import os
import paddle_hub as hub
def infer_with_input_text():
# get ssd module
ssd = hub.Module(module_dir="hub_module_ssd")
test_img_path = os.path.join("resources", "test", "test_img_bird.jpg")
# get the input keys for signature 'object_detection'
data_format = ssd.processor.data_format(sign_name='object_detection')
key = list(data_format.keys())[0]
# set input dict
input_dict = {key: [test_img_path]}
# execute predict and print the result
results = ssd.object_detection(data=input_dict)
for result in results:
hub.logger.info(result)
def infer_with_input_file():
# get ssd module
ssd = hub.Module(module_dir="hub_module_ssd")
# get the input keys for signature 'object_detection'
data_format = ssd.processor.data_format(sign_name='object_detection')
key = list(data_format.keys())[0]
# parse input file
test_csv = os.path.join("resources", "test", "test.csv")
test_images = hub.io.reader.csv_reader.read(test_csv)["IMAGE_PATH"]
# set input dict
input_dict = {key: test_images}
results = ssd.object_detection(data=input_dict)
for result in results:
hub.logger.info(result)
if __name__ == "__main__":
infer_with_input_file()
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册