转行图像p

图像处理

    • 1、.ckpt文件与.pb文件
    • 2、lambda用法
    • 3、batch、batch_size、epoch、iteration简介
    • 4、 pprint
    • 5、pip安装Tensorflow模块问题:
    • 6、python降级
    • 7、c#调用onnx

1、.ckpt文件与.pb文件

  1. .ckpt文件是旧版本的输出saver.save(sess),相当于现在的.ckpt-data
  2. checkpoint文件仅用于告知某些TF函数,这是最新的检查点文件。
  3. .ckpt-meta 包含元图,即计算图的结构,没有变量的值(基本上可以在tensorboard / graph中看到)。
saver = tf.train.import_meta_graph(path_to_ckpt_meta) saver.restore(sess, path_to_ckpt_data)
  1. ckpt.data : 保存模型中每个变量的取值
  2. .pb文件可以保存您的整个图表(元+数据)。要在C++中加载和使用(但不训练)图形,通常会使用它来创建freeze_graph,它会.pb从元数据和数据创建文件。

2、lambda用法

lambda只是一个表达式,函数体比def简单很多。
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

3、batch、batch_size、epoch、iteration简介

(1)batchsize:每批数据量的大小。DL通常用SGD的优化算法进行训练,也就是一次(1 个iteration)一起训练batchsize个样本,计算它们的平均损失函数值,来更新参数。

(2)iteration:1个iteration即迭代一次,也就是用batchsize个样本训练一次。

(3)epoch:1个epoch指用训练集中的全部样本训练一次,此时相当于batchsize 等于训练集的样本数。

举例:假设数据集10w,epoch=5,则训练集为50w,训练集可打乱;
           假设batchsize=50,则iteration=10w*5/50=1w;
           训练过程:iter1:1-50;iter2:51-100(取数据可有序取,可随机取)

4、 pprint

import pprint

data = (
    "this is a string", [1, 2, 3, 4], ("more tuples",
    1.0, 2.3, 4.5), "this is yet another string"
    )

pprint.pprint(data)

5、pip安装Tensorflow模块问题:

ERROR: Could not find a version that satisfies the requirement tensorflow1.15.0rc (from versions: none) ERROR: No matching distribution found for tensorflow1.15.0rc
使用pip安装tensorflow报错:ERROR: Could not find a version that satisfies the requirement tensorflow==1.15.0rc (from versions: none)

   ERROR: No matching distribution found for tensorflow==1.15.0rc

解决办法:

1、检查python版本。好像目前tensorflow只支持python3.5.x 64bit~3.6.x 64bit版本。(重点:python版本必须是64bit的。32bit安装tensorflow还是会报错)

确认python版本是:python3.6.x-64bit,使用管理员权限直接在终端运行:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow ,就可以安装成功。

6、python降级

conda install python=3.6

7、c#调用onnx

pip install -U tf2onnx
#模型转换
python -m tf2onnx.convert --graphdef frozen_graph_sanyuan_10W.pb --output model.onnx --inputs Placeholder:0 --outputs add:0

#参数说明:
-graphdef:需要进行转换的pb模型
--output:转换后的onnx模型名称
-inputs:pb模型输入层的名字
--outputs:pb模型输出层的名字

import tensorflow as tf
 #_________获取python的版本号________#
import sys
print('>>>Python Version:',sys.version)
# >>>Python Version: 3.6.7 |Anaconda, Inc.| ......
 #_________获取tensorflow的版本号________#
print('>>> tensroflow.version:%s\n'%tf.VERSION)
# >>> tensroflow.version:1.12.0
 
pb_path=["./mnist.pb",'./my_frozen_mobilenet_v1.pb'][1]
with tf.Session() as sess:
    with open(pb_path, 'rb') as f:
        graph_def = tf.GraphDef()
        graph_def.ParseFromString(f.read())
        print('>>>打印输入节点的结构如下:\n', graph_def.node[0])
        print('*'*50,'\n')
        print('>>>打印输出节点的结构如下:\n',graph_def.node[-1])
 

转行图像p_第1张图片
转行图像p_第2张图片
转行图像p_第3张图片

你可能感兴趣的:(程序人生,python,深度学习)