README.md 2.3 KB
Newer Older
J
jiangjiajun 已提交
1
# tensorflow2fluid
J
Jason 已提交
2
[![License](https://img.shields.io/badge/license-Apache%202-blue.svg)](LICENSE)
J
Jason 已提交
3

J
Jason 已提交
4
## 依赖
J
Jason 已提交
5

J
Jason 已提交
6
> python = 2.7
J
Jason 已提交
7

J
Jason 已提交
8
> tensorflow >= 1.12.0
J
Jason 已提交
9

J
Jason 已提交
10
> 注:tensorflow2fluid的运行不依赖于paddlepaddle
J
Jason 已提交
11

J
Jason 已提交
12
## 介绍
J
Jason 已提交
13

J
Jason 已提交
14
tensorflow2fluid支持将训练好的TensorFlow模型转至PaddlePaddle fluid模型,转换后的保存目录中,文件list如下表所示
J
Jason 已提交
15

J
Jason 已提交
16 17 18 19 20 21
|文件|作用|
|------------------|-----------------------------------------------|
|my_model.py|基于PaddlePaddle实现的模型网络结构python代码|
|ref_name.txt|my_model.py中各tensor与原TensorFlow模型中的tensor对应关系|
|const_*/params_*|转换后的模型参数文件|

J
Jason 已提交
22
## 用法
J
Jason 已提交
23 24 25 26
使用tensorflow2fluid转换模型时,所需的信息如下

|参数|说明|
|------------------|-----------------------------------------------|
J
Jason 已提交
27
|meta_file|TensorFlow模型序列化后保存的meta文件|
J
Jason 已提交
28
|ckpt_file|TensorFlow模型保存checkpoint目录|
J
Jason 已提交
29
|pb_file|Tensorflow保存的pb格式模型|
J
Jason 已提交
30 31 32 33
|input_nodes|输入tensor名,多个输入时以空格分隔|
|input_shape|输入tensor的shape(batch维度以None表示),shape之间以空格分隔,shape内各维度以逗号分隔,须与input_nodes对应|
|output_shape|输出tensor名,多个输出时以空格分隔|
|save_dir|转换后的模型保存路径|
J
Jason 已提交
34 35

目前TensorFlow保存的模型主要包括ckpt和pb两种类型。其中加载ckpt模型时,同时也需通过meta文件导入网络结构;而pb模型则已将网络结构和参数均序列化至同一个文件。因此,加载ckpt模型时,需指定meta_file和ckpt_file,而加载pb模型,则只需指定pb_file即可。
J
Jason 已提交
36

J
Jason 已提交
37 38
### 例:将inception_v3模型转换至PaddlePaddle

J
Jason 已提交
39 40 41 42 43 44 45 46 47 48 49
```Bash
wget http://download.tensorflow.org/models/inception_v3_2016_08_28.tar.gz
tar xzvf http://download.tensorflow.org/models/inception_v3_2016_08_28.tar.gz
python demo/inception_v3/export_to_checkpoint.py inception_v3.py checkpoint
python convert.py --meta_file checkpoint/model.meta \
                  --ckpt_dir checkpoint \
                  --in_nodes inputs \
                  --input_shape None,299,299,3 \
                  --output_nodes InceptionV3/Logits/SpatialSqueeze \
                  --save_dir paddle_inception_v3
```
J
Jason 已提交
50 51

### 加载转换后的模型
J
Jason 已提交
52 53 54

## Link
[MMdnn-Tensorflow](https://github.com/Microsoft/MMdnn/tree/master/mmdnn/conversion/tensorflow)