-
大小: 12.75MB文件类型: .gz金币: 1下载: 0 次发布日期: 2023-07-10
- 语言: Python
- 标签: tensorflow python
资源简介
用python写的tensorflow框架下数码管的识别方法,包含训练代码和测试代码,可直接利用模型进行检测,如果效果不好,可以自己构建数据集训练
代码片段和文件信息
# coding: utf-8
# ## 导入各种依赖库
# 因为此目录下已经有训练好的模型,可以直接到最后一个代码块运行,无需额外训练,如果与实际应用情况存在偏差,请添加数据集进行再次训练
#
# 没有的模块进行安装
# ‘‘‘ bash
# pip install modual
# ‘‘‘
# In[2]:
import tensorflow as tf
import gzip
import os
import tempfile
import cv2
import random
import numpy as np
# ## 生成数据集格式
# ### train data
# In[3]:
#导入数据图片,以features命名
imgs=os.listdir(‘./datasets/train/imgs/‘)
# 定义一个排序函数
def nu_str(string):
return int(string.split(‘.‘)[0])
# 将文件夹中的文件按照名称数字大小进行排序 能够与labels一一对应
imgs.sort(key=nu_str)
features_train=[]
# 对每一张图片进行处理,主要是将矩阵转化为一个向量,最后将所有图片打包
for i in imgs:
img=cv2.imread(‘./datasets/train/imgs/‘+str(i)0)
#resimg=cv2.threshold(img 200 255 cv2.THRESH_BINARY)
#img=cv2.copyMakeBorder(img5555cv2.BORDER_CONSTANTvalue=0)
#cv2.imshow(‘3‘img)
#cv2.waitKey(100)
img=img.reshape(28*28)/255
features_train.append(img)
features_train=np.array(features_train) # 包含所有图片的一个向量集
# In[4]:
## 将每一个图片对应的结果转化为one-hot形式储存
# 读取文件所有内容
with open(‘./datasets/train/targets/target.txt‘‘r‘) as f:
tars=f.readlines()
# 向量不同位置对应的结果
tar_temp=[0123456789‘.‘]
labels_train=[]
# 构造one-hot形式的向量集
for i in tars:
b=np.array([i[0]==str(tar_temp[j]) for j in range(len(tar_temp))])+0
labels_train.append(b) # 一个包含所有结果的向量集(与图片集一一对应)
# ### 验证数据集的正确性
# In[5]:
# 选择运行
# 查看数据集与结果是否一一对应,主要看看显示的图片和打印的数字是否一致
for i in range(len(features_train)):
cv2.imshow(‘feature‘features_train[i].reshape(2828))
print(np.argmax(labels_train[i]))
cv2.waitKey(500) # 单张图片的显示时间ms
# ### test data
# In[6]:
# 生成测试数据集,同训练集一样
imgs=os.listdir(‘./datasets/test/imgs/‘)
def nu_str(string):
return int(string.split(‘.‘)[0])
imgs.sort(key=nu_str)
features_test=[]
for i in imgs:
img=cv2.imread(‘./datasets/test/imgs/‘+str(i)0)
#resimg=cv2.threshold(img 200 255 cv2.THRESH_BINARY)
#img=cv2.copyMakeBorder(img5555cv2.BORDER_CONSTANTvalue=0)
#cv2.imshow(‘3‘img)
#cv2.waitKey(100)
img=img.reshape(28*28)/255
features_test.append(img)
features_test=np.array(features_test)
# In[7]:
with open(‘./datasets/test/targets/target.txt‘‘r‘) as f:
tars=f.readlines()
tar_temp=[0123456789‘.‘]
labels_test=[]
for i in tars:
b=np.array([i[0]==str(tar_temp[j]) for j in range(len(tar_temp))])+0
labels_test.append(b)
# In[8]:
# 查看测试训练集的正确性 可以跳过
for i in range(len(features_test)):
cv2.imshow(‘feature‘features_test[i].reshape(2828))
print(np.argmax(labels_test[i]))
cv2.waitKey(500)
# ## 线性训练
# 这个训练结果太差,忽略
# ### train
# 忽略 不需要运行
# In[9]:
sess = tf.Session()
# 设置放置自变量的空间(图片输入的)
x=tf.placeholder(“float“[None28*28])
# 设置权重以及偏置的变量空间
W=tf.Variable(tf.zeros([28*2811]))
b=tf.Variable(tf.zeros([11]))
# 计算特定权重偏置下的结果
y=tf.nn.softmax(tf.matmul(xW)+b)
# 设置储存实际结果的空间
y_=tf.placeholder(“float“[None11])
# 计算预测与实际的交叉熵
cross_entropy=-tf.reduce_sum(y_*tf.log(y))
# 训练 通过使得交叉熵向减小的方向
train_step=tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
# 初始化变量
init = tf.initialize_
相关资源
- python编程从零基础到项目实战PPT
- grpcio-1.24.3-cp37-cp37m-linux_armv7l.whl
- 《Python从入门到精通》PPT课件.rar
- python3.7.0-64位完整版安装包
- python machine learningpython机器学习(中
- Django 2 Web Development Cookbook 3rd Editio
- python3.7.0.zip
- 《Python金融大数据分析》高清完整P
- 流畅的python中文版
- tensorflow1.0.0 python2.7 linux版安装文件
- PYTHON数据可视化编程实战matplotlib中文
- OpenCV_ Computer Vision Projects with Python.P
- python音乐播放器
- Python深度学习+2018中文版pdf+英文版p
- 机器学习实战Python 开发 高清 非扫描
- Python深度学习中文版
- python大数据
- Python项目开发实战 第2版(完整版)
- onvif-python调用
- Python编程快速上手 让繁琐工作自动化
- SELENIUM 2 自动化测试实战 基于PYTHON语
- Python与数据挖掘中文高清完整版PDF
- Python编程123
- python3.6 64位安装包
- vc_redist.2015.exe
- Python编程从入门到实践课件
- Francois Chollet-Deep Learning with Python
- Python程序设计-董付国第二版书中源代
- 2019新版_Python编程从入门到实践高清中
- wxpython in action中英文合集(两份)
评论
共有 条评论