• 大小: 1.62MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-10
  • 语言: Python
  • 标签: caffe  tensorflow  

资源简介

代码由python语言编写,可以将caffe的prototxt和caffemodel文件转化为tensorflow模型

资源截图

代码片段和文件信息

#!/usr/bin/env python

import numpy as np
import argparse
from kaffe import KaffeError print_stderr
from kaffe.tensorflow import TensorFlowTransformer


def fatal_error(msg):
    ‘‘‘
    :param msg:
    :return: 用于打印错误信息列表
    ‘‘‘
    print_stderr(msg)
    exit(-1)


def validate_arguments(args):
    ‘‘‘
    用于判断输入的命令的格式是否规范
    :param args:
    :return:
    ‘‘‘
    if (args.data_output_path is not None) and (args.caffemodel is None):
        fatal_error(‘No input data path provided.‘)#没有输入数据的路径
    if (args.caffemodel is not None) and (args.data_output_path is None):
        fatal_error(‘No output data path provided.‘)#没有提供输出数据路径
    if (args.code_output_path is None) and (args.data_output_path is None):
        fatal_error(‘No output path specified.‘)#没有指定输出路径。


def convert(def_path caffemodel_path data_output_path code_output_path phase):
    ‘‘‘
    用于对输入的模型进行加载,和进行模型装换
    :param def_path: 输入的caffe网络结构文件prototxt格式
    :param caffemodel_path: 输入的caffe训练的到的模型文件caffemodel格式
    :param data_output_path: 输出的
    :param code_output_path:输出的tensorflow的网络结构代码
    :param phase:为网络的训练模式,test 或者是train
    :return:
    ‘‘‘
    try:
        transformer = TensorFlowTransformer(def_path caffemodel_path phase=phase)#加载网络结构和加载模型文件
        print_stderr(‘Converting data...‘)#开始转换数据
        if caffemodel_path is not None:
            data = transformer.transform_data()#转换权值和偏置数据
            print_stderr(‘Saving data...‘)
            with open(data_output_path ‘wb‘) as data_out:
                np.save(data_out data)#保存权值偏置数据
        if code_output_path:#转化为tensorflow对应网络我心代码
            print_stderr(‘Saving source...‘)
            with open(code_output_path ‘wb‘) as src_out:
                src_out.write(transformer.transform_source())#保存网络模型代码
        print_stderr(‘Done.‘)#转换完成
    except KaffeError as err:#捕获异常
        fatal_error(‘Error encountered: {}‘.format(err))


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument(‘def_path‘ help=‘Model definition (.prototxt) path‘)
    parser.add_argument(‘--caffemodel‘ help=‘Model data (.caffemodel) path‘)
    parser.add_argument(‘--data-output-path‘ help=‘Converted data output path‘)
    parser.add_argument(‘--code-output-path‘ help=‘Save generated source to this path‘)
    parser.add_argument(‘-p‘
                        ‘--phase‘
                        default=‘test‘
                        help=‘The phase to convert: test (default) or train‘)
    args = parser.parse_args()
    #解析命令参数
    validate_arguments(args)#判断命令参数的是否有错误

    convert(args.def_path args.caffemodel args.data_output_path args.code_output_path
            args.phase)#加载模型,和转换模型


if __name__ == ‘__main__‘:
    main()

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-09-20 14:01  caffe-tensorflow-master\
     文件          97  2017-01-16 18:47  caffe-tensorflow-master\.gitignore
     目录           0  2018-09-29 11:46  caffe-tensorflow-master\.idea\
     文件         398  2018-09-17 10:39  caffe-tensorflow-master\.idea\caffe-tensorflow-master.iml
     目录           0  2018-09-17 10:34  caffe-tensorflow-master\.idea\inspectionProfiles\
     文件         292  2018-09-17 10:33  caffe-tensorflow-master\.idea\misc.xml
     文件         298  2018-09-17 10:33  caffe-tensorflow-master\.idea\modules.xml
     文件       37239  2018-09-29 11:46  caffe-tensorflow-master\.idea\workspace.xml
     文件         883  2017-01-16 18:47  caffe-tensorflow-master\.pylintrc
     文件          70  2017-01-16 18:47  caffe-tensorflow-master\.style.yapf
     文件        3141  2018-09-20 14:01  caffe-tensorflow-master\convert.py
     目录           0  2017-01-16 18:47  caffe-tensorflow-master\examples\
     目录           0  2017-01-16 18:47  caffe-tensorflow-master\examples\imagenet\
     文件        2831  2017-01-16 18:47  caffe-tensorflow-master\examples\imagenet\classify.py
     文件        7924  2017-01-16 18:47  caffe-tensorflow-master\examples\imagenet\dataset.py
     文件       21675  2017-01-16 18:47  caffe-tensorflow-master\examples\imagenet\imagenet-classes.txt
     目录           0  2017-01-16 18:47  caffe-tensorflow-master\examples\imagenet\models\
     文件         852  2017-01-16 18:47  caffe-tensorflow-master\examples\imagenet\models\alexnet.py
     文件         853  2017-01-16 18:47  caffe-tensorflow-master\examples\imagenet\models\caffenet.py
     文件        7851  2017-01-16 18:47  caffe-tensorflow-master\examples\imagenet\models\googlenet.py
     文件        3067  2017-01-16 18:47  caffe-tensorflow-master\examples\imagenet\models\helper.py
     文件        1023  2017-01-16 18:47  caffe-tensorflow-master\examples\imagenet\models\nin.py
     文件       62496  2017-01-16 18:47  caffe-tensorflow-master\examples\imagenet\models\resnet.py
     文件        1180  2017-01-16 18:47  caffe-tensorflow-master\examples\imagenet\models\vgg.py
     文件          21  2017-01-16 18:47  caffe-tensorflow-master\examples\imagenet\models\__init__.py
     文件        1734  2017-01-16 18:47  caffe-tensorflow-master\examples\imagenet\README.md
     文件        3871  2017-01-16 18:47  caffe-tensorflow-master\examples\imagenet\validate.py
     目录           0  2017-01-16 18:47  caffe-tensorflow-master\examples\mnist\
     文件        1667  2017-01-16 18:47  caffe-tensorflow-master\examples\mnist\finetune_mnist.py
     文件        1738  2017-01-16 18:47  caffe-tensorflow-master\examples\mnist\lenet.prototxt
     文件     1725006  2017-01-16 18:47  caffe-tensorflow-master\examples\mnist\lenet_iter_10000.caffemodel
............此处省略32个文件信息

评论

共有 条评论