tensorflow :ckpt模型转换为pytorch : hdf5模型

参考链接:https://github.com/bermanmaxim/jaccardSegment/blob/master/ckpt_to_dd.py

import tensorflow as tf
import deepdish as dd
import argparse
import os
import numpy as np

def tr(v):
    # tensorflow weights to pytorch weights
    if v.ndim == 4:
        return np.ascontiguousarray(v.transpose(3,2,0,1))
    elif v.ndim == 2:
        return np.ascontiguousarray(v.transpose())
    return v

def read_ckpt(ckpt):
    # https://github.com/tensorflow/tensorflow/issues/1823
    reader = tf.train.NewCheckpointReader(ckpt)
    weights = {n: reader.get_tensor(n) for (n, _) in reader.get_variable_to_shape_map().iteritems()}
    pyweights = {k: tr(v) for (k, v) in weights.items()}
    return pyweights

if __name__ == ‘__main__‘:
    parser = argparse.ArgumentParser(description="Converts ckpt weights to deepdish hdf5")
    parser.add_argument("infile", type=str,
                        help="Path to the ckpt.")
    parser.add_argument("outfile", type=str, nargs=‘?‘, default=‘‘,
                        help="Output file (inferred if missing).")
    args = parser.parse_args()
    if args.outfile == ‘‘:
        args.outfile = os.path.splitext(args.infile)[0] + ‘.h5‘
    outdir = os.path.dirname(args.outfile)
    if not os.path.exists(outdir):
        os.makedirs(outdir)
    weights = read_ckpt(args.infile)
    dd.io.save(args.outfile, weights)
    weights2 = dd.io.load(args.outfile)

原文地址:https://www.cnblogs.com/wangyarui/p/9076401.html

时间: 2024-07-31 00:30:14

tensorflow :ckpt模型转换为pytorch : hdf5模型的相关文章

PyTorch 1.0 中文官方教程:使用ONNX将模型从PyTorch传输到Caffe2和移动端

译者:冯宝宝 在本教程中,我们将介绍如何使用ONNX将PyTorch中定义的模型转换为ONNX格式,然后将其加载到Caffe2中.一旦进入Caffe2,我们就可以运行模型来仔细检查它是否正确导出,然后我们展示了如何使用Caffe2功能(如移动导出器)在移动设备上执行模型. 在本教程中,你需要安装onnx和Caffe2.您可以使用pip install onnx获取onnx的二进制版本. 注意: 本教程需要PyTorch master分支,可以按照 这里说明进行安装. # 一些包的导入 impor

使用Tensorflow搭建回归预测模型之八:模型与外部接口对接

前一篇中,我们讨论了模型的压缩,将标准tensorflow格式的模型文件转换成tflite格式,极大的缩小了模型的大小. 本篇我们将介绍如何使用标准C/C++来调用tflite格式的模型. 接下来依次介绍下: 一.BUILD文件修改: # Description: # TensorFlow Lite A/C of Traffic Assist. package(default_visibility = ["//visibility:public"]) licenses(["n

[Pytorch]Pytorch 保存模型与加载模型(转)

转自:知乎 目录: 保存模型与加载模型 冻结一部分参数,训练另一部分参数 采用不同的学习率进行训练 1.保存模型与加载 简单的保存与加载方法: # 保存整个网络 torch.save(net, PATH) # 保存网络中的参数, 速度快,占空间少 torch.save(net.state_dict(),PATH) #-------------------------------------------------- #针对上面一般的保存方法,加载的方法分别是: model_dict=torch.

padding标准盒模型和怪异盒子模型

我们都知道padding是为块级元素设置内边距 但是在使用过程中,我们却会遇到一些问题.padding的标准盒模型和怪异盒模型 padding盒子模型 我们通过demo来讲这个问题,用文字干讲第一没意思,第二讲不明白 标准盒模型: 我们先摆出HTML和CSS代码: 1 <div class="shoebox"> <!--此div模仿鞋子的鞋盒--> 2 <div class="shoes"> <!--此div模仿鞋子--&g

ThinkPHP 学习笔记 ( 四 ) 数据库操作之关联模型 ( RelationMondel ) 和高级模型 ( AdvModel )

一.关联模型 ( RelationMondel ) 1.数据查询 ① HAS_ONE 查询 创建两张数据表评论表和文章表: tpk_comment , tpk_article .评论和文章的对应关系为,一条评论 id 对应一篇文章,为 ONE_TO_ONE 关系 ( 一对一 ).评论表的结构为: 其中 aid 字段与文章表的 id 字段对应.打开自定义模型 ArticleModel,让模型继承于 RelationModel,然后定义成员属性 $_link,代码: ArticleModel.cla

判别式模型和产生式模型 (discriminative model and generative m

最经典的莫过于 Andrew Ng在NIPS2001年有一篇专门比较判别模型和产生式模型的文章: On Discrimitive vs. Generative classifiers: A comparision of logistic regression and naive Bayes (http://robotics.stanford.edu/~ang/papers/nips01-discriminativegenerative.pdf) 转: 判别式模型和产生式模型 (discrimin

matlab(5) : 求得θ值后用模型来预测 / 计算模型的精度

求得θ值后用模型来预测 / 计算模型的精度 %% ============== Part 4: Predict and Accuracies ==============% After learning the parameters, you'll like to use it to predict the outcomes% on unseen data. In this part, you will use the logistic regression model% to predict

ThinkPHP 的模型使用详细介绍--模型的核心(七)

原文:ThinkPHP 的模型使用详细介绍--模型的核心(七) 注意:本节是ThinkPhp框架对数据操作的核心处理部分 大家还是在这里看清楚可以将其剪切放到代码编辑器中查看 本章节给大家着重介绍模型的: 一.普通查询方式    . 二.表达式查询方式 . 三.区间查询      .  四.统计查询  .    五.SQL直接查询 回顾初步模型的-"增删改查": // 直接连接数据库,但是得先去配置文件中配置下才行 class IndexAction extends Action {

稀疏模型与结构性稀疏模型

稀疏模型与结构性稀疏模型 稀疏编码系列: (一)----Spatial Pyramid 小结 (二)----图像的稀疏表示——ScSPM和LLC的总结 (三)----理解sparse coding (四)----稀疏模型与结构性稀疏模型 --------------------------------------------------------------------------- 之前几次讲到了ScSPM,以及改进的LLC.SPM是不带结构性的稀疏编码,而LLC是考虑了结构性的稀疏编码.这