Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
X2Paddle
提交
a3893485
X
X2Paddle
项目概览
PaddlePaddle
/
X2Paddle
大约 1 年 前同步成功
通知
328
Star
698
Fork
167
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
26
列表
看板
标记
里程碑
合并请求
4
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
X2Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
26
Issue
26
列表
看板
标记
里程碑
合并请求
4
合并请求
4
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
a3893485
编写于
4月 01, 2019
作者:
J
jiangjiajun
提交者:
Macrobull
4月 01, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update tutorial
上级
f6c5d238
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
36 addition
and
16 deletion
+36
-16
tensorflow2fluid/vgg_translate_tutorial.ipynb
tensorflow2fluid/vgg_translate_tutorial.ipynb
+36
-16
未找到文件。
tensorflow2fluid/vgg_translate_tutorial.ipynb
浏览文件 @
a3893485
...
...
@@ -12,7 +12,7 @@
},
{
"cell_type": "code",
"execution_count":
2
,
"execution_count":
1
,
"metadata": {},
"outputs": [
{
...
...
@@ -45,7 +45,7 @@
},
{
"cell_type": "code",
"execution_count":
3
,
"execution_count":
2
,
"metadata": {},
"outputs": [],
"source": [
...
...
@@ -62,12 +62,14 @@
"source": [
"### 保存模型为checkpoint格式\n",
"\n",
"tensorflow2fluid目前支持checkpoint格式的模型或者是将网络结构和参数序列化的pb格式模型,上面下载的`vgg_16.ckpt`仅仅存储了模型参数,因此我们需要重新加载参数,并将网络结构和参数一起保存为checkpoint模型"
"tensorflow2fluid目前支持checkpoint格式的模型或者是将网络结构和参数序列化的pb格式模型,上面下载的`vgg_16.ckpt`仅仅存储了模型参数,因此我们需要重新加载参数,并将网络结构和参数一起保存为checkpoint模型\n",
"\n",
"**注意:下面的代码里,运行TensorFlow模型和将TensorFlow模型转换为PaddlePaddle模型,依赖TensorFlow**"
]
},
{
"cell_type": "code",
"execution_count":
1
,
"execution_count":
3
,
"metadata": {},
"outputs": [
{
...
...
@@ -107,12 +109,28 @@
"source": [
"### 将模型转换为PaddlePaddle模型\n",
"\n",
"注意:部分OP在转换时,需要将参数写入文件;或者是运行tensorflow模型进行infer,获取tensor值。两种情况下均会消耗一定的时间用于IO或计算,对于后一种情况,建议转换模型时将`use_cuda`参数设为`True`,加快infer速度"
"**注意**:部分OP在转换时,需要将参数写入文件;或者是运行tensorflow模型进行infer,获取tensor值。两种情况下均会消耗一定的时间用于IO或计算,对于后一种情况,建议转换模型时将`use_cuda`参数设为`True`,加快infer速度\n",
"\n",
"可以通过下面的**模型转换python脚本**在代码中设置参数,在python脚本中进行模型转换。或者一般可以通过如下的命令行方式进行转换,\n",
"``` python\n",
"# 通过命令行也可进行模型转换\n",
"python tf2fluid/convert.py --meta_file checkpoint/model.meta --ckpt_dir checkpoint \\\n",
" --in_nodes inputs --input_shape None,224,224,3 \\\n",
" --output_nodes vgg_16/fc8/squeezed --use_cuda True \\\n",
" --input_format NHWC --save_dir paddle_model\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 模型转换python脚本"
]
},
{
"cell_type": "code",
"execution_count":
9
,
"execution_count":
4
,
"metadata": {},
"outputs": [
{
...
...
@@ -246,7 +264,9 @@
"metadata": {},
"source": [
"### 加载转换后的PaddlePaddle模型,并进行预测\n",
"**需要注意,转换后的PaddlePaddle CV模型输入格式为NCHW**"
"需要注意的是,转换后的PaddlePaddle CV模型**输入格式为NCHW**\n",
"\n",
"**注意:下面代码用于运行转换后的PaddlePaddle模型,并与TensorFlow计算结果对比diff,因此依赖PaddlePaddle**"
]
},
{
...
...
@@ -254,8 +274,8 @@
"execution_count": 1,
"metadata": {
"ExecuteTime": {
"end_time": "2019-03-1
4T10:18:46.124339
Z",
"start_time": "2019-03-1
4T10:18:40.858372
Z"
"end_time": "2019-03-1
5T05:51:40.544737
Z",
"start_time": "2019-03-1
5T05:51:27.857863
Z"
}
},
"outputs": [],
...
...
@@ -263,7 +283,7 @@
"import numpy\n",
"import tf2fluid.model_loader as ml\n",
"\n",
"model = ml.ModelLoader(\"paddle_model\", use_cuda=
Tru
e)\n",
"model = ml.ModelLoader(\"paddle_model\", use_cuda=
Fals
e)\n",
"\n",
"numpy.random.seed(13)\n",
"data = numpy.random.rand(5, 224, 224, 3).astype(\"float32\")\n",
...
...
@@ -287,8 +307,8 @@
"execution_count": 2,
"metadata": {
"ExecuteTime": {
"end_time": "2019-03-1
4T10:20:13.611132
Z",
"start_time": "2019-03-1
4T10:20:13.598874
Z"
"end_time": "2019-03-1
5T05:52:02.126718
Z",
"start_time": "2019-03-1
5T05:52:02.115849
Z"
}
},
"outputs": [
...
...
@@ -296,7 +316,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"
3.33786
e-06\n"
"
6.67572
e-06\n"
]
}
],
...
...
@@ -315,15 +335,15 @@
"### 需要注意的点\n",
"1. 转换后的模型需要注意输入格式,PaddlePaddle中输入格式需为NCHW格式 \n",
"2. 此例中不涉及到输入中间层,如卷积层的输出,需要了解的是PaddlePaddle中的卷积层输出,卷积核的`shape`与Tensorflow有差异 \n",
"3. 模型转换完后,检查转换前后模型的diff,在本例中,
最大diff为3.34-e06,
满足转换需求 "
"3. 模型转换完后,检查转换前后模型的diff,在本例中,
测试得到的最大diff
满足转换需求 "
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python
2
",
"display_name": "Python
[conda env:GPU-Paddle]
",
"language": "python",
"name": "
python2
"
"name": "
conda-env-GPU-Paddle-py
"
},
"language_info": {
"codemirror_mode": {
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录