import pickle
import numpy as np
import tensorflow as tf
import random
def load_data(data_path):
with open(data_path,"rb") as f:
u = pickle.Unpickler(f,encoding="latin1")#使用Pickler实例在序列化对象的时候,
#从文件对象中读取一个序列化后的对象并将其解序列化成原来的层级结构
target_params = u.load()
data = target_params['data'].reshape([-1,32,32,3])
label = target_params['labels']
label=np.array(label)
return data,label
data1,label1=load_data("D:/python3/lpthw/train/data_batch_1")
data2,label2=load_data("D:/python3/lpthw/train/data_batch_2")
data3,label3=load_data("D:/python3/lpthw/train/data_batch_3")
data4,label4=load_data("D:/python3/lpthw/train/data_batch_4")
data5,label5=load_data("D:/python3/lpthw/train/data_batch_5")
data=np.concatenate((data1,data2,data3,data4,data5),axis=0)
data=np.array(data, dtype=np.float32)
#print(data.dtype)
labels=np.concatenate((label1,label2,label3,label4,label5),axis=0)
data=data/255.0
def load_data1(data_path):
with open(data_path,"rd") as f:
u=pickle.Unpickler(f,encoding="latin1")
target_params=u.load()
data=target_params['data'].reshape([-1,32,32,3])
label=target_params['labels']
label=np.array(label)
return data,label
test_data,test_label=load_data("D:/python3/lpthw/test/test_batch")
test_data=np.array(test_data,dtype=np.float32)
test_data=test_data/255.0
#Training parameters
learning_rate=0.001
num_steps=10000
batch_size=100
num_input=3072
num_classes=10
dropout=0.1
traing_epoch=50000/batch_size
X=tf.placeholder("float",[None,32,32,3])
Y=tf.placeholder("float",[None])
display_step=1
#卷积部分
def conv_net(X,n_classes,dropout,reuse,is_training):
with tf.variable_scope('ConvNet',reuse=tf.AUTO_REUSE):#通过tf.variable_scope函数可以控制tf.get_variable函数的语义
conv1=tf.layers.conv2d(X,64,5,activation=tf.nn.relu)#filters,kernel
conv1=tf.layers.max_pooling2d(conv1,2,2)#strides,kernel
conv2=tf.layers.conv2d(conv1,64,5,activation=tf.nn.relu)
conv2=tf.layers.max_pooling2d(conv2,2,2)
fc1=tf.contrib.layers.flatten(conv2)
fc1=tf.layers.dense(fc1,1024)#dense为全连接层,即add_layer函数,该层的输入,输出的维度
fc1=tf.layers.dropout(fc1,rate=dropout,training=is_training)
out=tf.layers.dense(fc1,n_classes)
return out
logits_train=conv_net(X,num_classes,dropout,reuse=False,is_training=True)#train输出部分
prediction=tf.argmax(logits_train,axis=1)
loss_op=tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits_train,labels=tf.cast(Y,dtype=tf.int32)))
train_op=tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(loss_op)
accuracy= tf.metrics.accuracy(labels=Y, predictions=prediction)
init=tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
sess.run(tf.local_variables_initializer())
for step in range(0,num_steps):
for j in range(0,int(traing_epoch)):
batch_x=data[j*batch_size:j*batch_size+100]
batch_y=labels[j*batch_size:j*batch_size+100]
sess.run(train_op,feed_dict={X:batch_x,Y:batch_y})
if step % display_step ==0 or step ==1:
loss,acc=sess.run([loss_op,accuracy],feed_dict={X:batch_x,Y:batch_y})
print("Epoch:",step,loss,acc)
print("Testing Accuracy:",sess.run(accuracy,feed_dict={X:test_data,Y:test_label}))
gakki_chen
- 粉丝: 1
- 资源: 11
最新资源
- 昆仑通态MCGS与3台欧姆龙E5*C温控器通讯程序功能:通过昆仑通态触摸屏,实现对3台欧姆龙E5CC温控器 设定温度值,读取实际温度,设定报警值,设定报警类型,报警上下限功能 反应灵敏,通讯稳定可靠
- 大电流电动工具,电动螺丝刀,电锯批量方案,12V,30A FOC控制
- 三菱FX3G两轴标准程序,XZ两轴,包含轴点动,回零,相对与绝对定位,只要弄明白这个程序,就可以非常了解整个项目的程序如何去编写,从哪里开始下手,
- 昆仑通态MCGS与2台台达VFD-M变频器通讯程序实现昆仑通态触摸屏与2台台达VFD-M变频器通讯,程序稳定可靠 器件:昆仑通态TPC7062KD触摸屏,2台台达VFD-M变频器,附送接线说明和设置说
- MATLAB代码:考虑安全约束及热备用的电力系统机组组合研究 关键词:机组组合 直流潮流 优化调度 参考文档:店主自编文档,模型数据清晰明了 仿真平台:MATLAB+CPLEX gurobi平台
- c#上位案例,动态添加控件 1、这是个上位机案例,自己写来通过电脑监控kuka机器人信号的工具; 3、软件界面上可以动态添加要监控的信号,可以强制输出信号 4、有c#源代码,可以作为上位机与机器人通
- 三菱FX3U与力士乐VFC-x610变频器通讯程序三菱FX3U与力士乐VFC-x610变频器通讯案例程序,有注释 并附送程序,有接线方式,设置 器件:三菱FX3U的PLC,力士乐VFCx610变频
- 台达DVP PLC与3台力士乐VFC-x610变频器通讯程序 程序带注释,并附送昆仑通态程序,有接线方式,设置 器件:台达DVP ES系列的PLC,3台力士乐VFC-x610系列变频器,昆仑通态 功
- FPGA开发:实现数码管+1602双通道秒表(联系后留邮)按键切秒表模式,所用开发板DE2-115,代码可移植,内含FPGA驱动1602代码,代码有详细注释
- 汇川PLC AM403-CPU1608TN,2020产品基于CODESYS平台二次订制软件,支持16轴ethercat总线,自带以太网 USB CANOPEN 2路485,16高速输入8高速输出,功能
- 电力电子、电机驱动、数字滤波器matlab simulink仿真模型实现及相关算法的C代码实现 配置C2000 DSP ADC DAC PWM定时器 中断等模块,提供simulink与DSP的联合仿
- labview.通用OCR识别技术
- FoobarCon_v0.9.91.0.apk
- 华为HarmonyOS应用开发者高级认证,官方专业证书
- 华为HarmonyOS应用开发者高级认证,官方专业证书
- 51单片机四层电梯控制器 基于51单片机的四层电梯控制系统 包括源代码和proteus仿真 系统硬件由51单片机最小系统、蜂鸣器电路、指示灯电路、内部按键电路、外部按键电路、步进电机、ULN2003
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈