
tensorflow
ming.zhang
爱科技,爱生活
展开
-
5.tensorflow:初始化方法,常用的优化器,学习率衰减
#coding:utf-8import tensorflow as tfinit_lr = 0.1aa = tf.Variable(0, trainable=False) # 记录global_step值# 学习率每10步,衰减至原来的0.9倍(在0至10之间也会变化)# decayed_learning_rate = learning_rate * decay_rate...原创 2018-11-18 20:27:41 · 922 阅读 · 0 评论 -
13.tensorflow:训练cifar10,搭建cnn网络,保存模型,tensorboard日志,输出loss,accuracy,学习率衰减
代码中可以保存模型,训练时的log日志,便于观察准确率,损失值等,学习率每隔5000步衰减为原来的0.1倍。其中cifar10_input.py和cifar10.py来源于https://github.com/tensorflow/models/tree/master/tutorials/image/cifar10其中cifar10.py用于下载cifar10的二进制数据集,注意修改53行中的...原创 2018-11-24 18:40:57 · 2063 阅读 · 0 评论 -
14.tensorflow:搭建分类网络并训练自己的数据
本示例可以实现的功能:1,用tf.contrib.layers搭建分类网络(自己也可以用tf.nn搭建);2,直接通过数据的路径读取批量数据(或者直接给个包含图像路径及标签的txt,在用caffe时经常这样搞),不用转换文件格式;3,学习率衰减;4,用tensorboard观察模型的结构及训练过程中的loss, accuracy, learning rate变化情况,有助于调参;5,保存模型;...原创 2018-11-29 23:33:28 · 1816 阅读 · 2 评论 -
15.tensorflow数据增强
#coding:utf-8import osimport numpy as npimport glob, cv2import shutilimport tensorflow as tfos.environ["CUDA_VISIBLE_DEVICES"] = "0"config = tf.ConfigProto()config.gpu_options.allow_growth ...原创 2018-12-08 00:38:06 · 475 阅读 · 0 评论 -
16.tensorflow打印pb文件中的变量名字及尺寸
#coding:utf-8import tensorflow as tffrom tensorflow.python.framework import graph_utiltf.reset_default_graph() # 重置计算图output_graph_path = 'model/model_tfnew.pb'with tf.Session() as sess: ...原创 2018-12-08 00:42:53 · 3378 阅读 · 0 评论 -
17.根据图像路径及label生成txt文件
#coding:utf-8import osimport randomimport globimport numpy as npimport shutilimg_path = "/home/ming/data"# train val img foldertrain_path = img_path + "/sku_train"val_path = img_path + "/sk...原创 2018-12-08 00:47:48 · 2631 阅读 · 3 评论 -
18.4:tensorflow分类模型mobilenetv2训练-图像转tfrecord格式并读取批量数据进行训练
通过18.1-18.3已经可以训练一个完整的分类模型并对图像进行预测了。之前的是从文件夹直接读取图像文件进行训练,这里介绍如何把图像转为tfrecord格式并读取、训练。一、图像转tfrecord文件如下为jpg_to_tfrecord.py。函数create_label_map()用于创建从图像类别到分类用的label的对应关系,保存在label.txt中,如果自己手动建立(...原创 2018-12-12 23:22:41 · 2970 阅读 · 1 评论 -
18.1:tensorflow分类模型mobilenetv2训练(数据增强,保存模型,衰减学习率,tensorboard),预测图像(单张,批量预测),导出为pb完整示例
从前有个小孩子在学习tensorflow,于是他买了几本tensorflow书籍,他发现各种书籍里面讲的示例都是使用mnist数据集。由于框架已经封装好了,在使用数据时用一条命令就可以加载数据了,他也不知道这些数据是怎么被读取的。于是乎,他在训练自己的模型时碰到的数据都是一张张图像,仍然无从下手(一脸懵逼)。除此之外,他还想加一些其他功能,如怎么动态调节学习率,怎么使用tensorboar...原创 2018-12-09 21:12:36 · 11917 阅读 · 11 评论 -
18.2:tensorflow分类模型mobilenetv2训练(数据增强,保存模型,衰减学习率,tensorboard),预测图像(单张,批量预测),导出为pb完整示例
二、预测经过一段时间的训练后在model_save文件夹下保存了下面的模型:他想使用model.ckpt-250000模型对数据进行预测。他写了个predict.py程序为:#coding:utf-8import os, cv2#os.environ["CUDA_VISIBLE_DEVICES"] = "-1" # use cpuimport numpy as np...原创 2018-12-09 21:26:25 · 2731 阅读 · 11 评论 -
18.3:tensorflow分类模型mobilenetv2训练(数据增强,保存模型,衰减学习率,tensorboard),预测图像(单张,批量预测),导出为pb完整示例
三、生成pb文件并预测。他查阅资料发现,生成pb文件需要三个文件,也就是model_save中保存的。如:此外,还需要知道输入节点,输出节点的名称。然而在他的训练的代码中并不好找到哪个是输入节点,在tensorboard的结构图中也没有找到。但他又想了一个方法,从保存的模型中再加载一次模型,并建立一个输入,输出节点,然后再保存。于是他写了这个ckpt_to_pd.py文件:sa...原创 2018-12-09 22:13:29 · 3181 阅读 · 3 评论 -
18.5使用tensorrt加速tensorflow的预测/前向传播速度
本文接着前面的18.1至18.3博客。nvidia推出的tensorrt可以加速前向传播的速度。本文采用tensorflow训练好的mobilenetv2模型进行测试,按照前面博客我们已经可以把训练好的模型转为.pb的格式了,这里的tensorrt就是对.pb文件进行加速。一、tensorrt安装安装方法参考https://developer.download.nvidia.com/c...原创 2019-01-12 23:48:57 · 5866 阅读 · 12 评论 -
4.tensorflow:带sotfmax的交叉熵softmax_cross_entropy_with_logits
#coding:utf-8"""1. tf.nn.softmax_cross_entropy_with_logits(labels=label, logits=logists) 等于-tf.reduce_sum(label * tf.log(tf.nn.softmax(logists)), 1)2. 使用非onehot的标签"""import tensorflow as tf...原创 2018-11-18 15:57:23 · 285 阅读 · 0 评论 -
12.numpy把标签进行one_hot编码
假设为6分类,有4个样本的标签为1, 1, 4, 3。利用numpy进行one_hot编码:import numpy as npnp.eye(6)[np.array([1, 1, 4, 3])]one hot后的输出为:array([[0., 1., 0., 0., 0., 0.], [0., 1., 0., 0., 0., 0.], [0., 0., ...原创 2018-11-24 12:24:27 · 1182 阅读 · 0 评论 -
6.tensorflow:线性逻辑回归进行分类
#coding:utf-8"""生成随机数据进行线性回归"""import tensorflow as tfimport numpy as npimport matplotlib.pyplot as pltfrom sklearn.utils import shuffle# 模拟数据点def generate(sample_size, mean, cov, diff): ...原创 2018-11-18 22:06:29 · 307 阅读 · 0 评论 -
8.tensorflow:卷积的填充方式:SAME,VALID区别
#coding:utf-8"""卷积尺寸的变化SAME, VALID的区别:SAME进行填充,卷积核移动步长=1时尺寸不变,移动步长=stride时卷积完毕后尺寸为 输入的尺寸/stride再向上取整VALID不进行填充,卷积后尺寸计算公式为 (输入尺寸 - 核尺寸)/stride + 1 再向下取整数"""import tensorflow as tfimport numpy ...原创 2018-11-21 16:55:38 · 5193 阅读 · 0 评论 -
9.tensorflow:cifar10数据下载,读取,可视化,图像反转,裁剪等
cifar10_input.py# Copyright 2015 The TensorFlow Authors. All Rights Reserved.## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance wi...转载 2018-11-21 23:57:57 · 604 阅读 · 0 评论 -
10.tensorflow:加载训练后的模型,读取图像路径,进行预测
#coding:utf-8"""https://github.com/zhangming8/resnet-18-tensorflow"""import osimport sysimport globimport cv2import timeimport mathimport numpy as npimport tensorflow as tfimport resnet...原创 2018-11-23 22:30:03 · 2678 阅读 · 0 评论 -
11.利用keras把cifar10的py批次格式数据转为jpg格式,制作
在用cnn进行分类时候,我们经常用到cifar10,但是官网的数据集都是转换格式后的,这里把官网的py版本(http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz)利用keras自带的dataset工具下载并进行转换为jpg格式。1.安装keraspip install keras -i https://pypi.tuna.tsingh...原创 2018-11-23 23:28:30 · 440 阅读 · 0 评论 -
7.tensorflow:指定gpu,限制使用量百分比,设置最小使用量
在Python代码中指定GPUimport osos.environ["CUDA_VISIBLE_DEVICES"] = "0" 设置定量的GPU使用量:config = tf.ConfigProto()config.gpu_options.per_process_gpu_memory_fraction = 0.9 # 占用GPU90%的显存session = tf.S...转载 2018-11-19 18:20:54 · 6165 阅读 · 3 评论 -
1.tensorflow线性回归示例:保存模型,载入模型,打印模型参数,修改模型
#coding:utf-8'''a liner regression by tenosrflow.input dimension: 1, output dimension: 1.显示每个epoch的loss利用模型预测保存模型载入模型打印模型中的参数修改模型中的参数'''import tensorflow as tfimport numpy as npimport ma...原创 2018-11-17 16:11:35 · 1815 阅读 · 0 评论 -
2.tensorflow:使用tensorboard记录loss变化,模型结构
#coding:utf-8'''a liner regression by tenosrflow.input dimension: 1, output dimension: 1.显示每个epoch的loss保存模型图,使用tensorboard'''import tensorflow as tfimport numpy as npimport matplotlib.pyplo...原创 2018-11-17 16:59:53 · 8308 阅读 · 0 评论 -
3.tensorflow单层神经网络mnist数字识别:训练,加载模型,预测图像
#coding:utf-8"""mnist分类,单层神经网络保存模型,加载模型,预测图像"""import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets("/Users/ming/Downloads/zhangmi...原创 2018-11-17 23:49:33 · 575 阅读 · 0 评论 -
18.6使用官方的slim训练模型并finetune微调
本文接着博客18.1,请先参考https://blog.youkuaiyun.com/u010397980/article/details/84930880如果嫌自己写网络结构有些麻烦,可以直接从tensorflow的slim包中直接调用模型结构。从tensoflow的github下载slim包,该包中有很多模型也包含在imagenet预训练的权重。详见https://github.com/tensorf...原创 2019-04-21 21:14:09 · 2355 阅读 · 16 评论