当前位置: 首页 > news >正文

哈密市网站建设_网站建设公司_图标设计_seo优化

怎么编写网站代码,西安seo公司,南宁云尚网络有限公司,石家庄学做网站建设培训学校首先看路径#xff1a; data文件夹分为#xff0c;model文件夹#xff0c;train文件夹和文件夹#xff0c;model文件夹存放模型文件#xff0c;train存放cat和dog的两个文件夹图片#xff0c; validation和train一样。config.py存放配置的一些参数#xff0c;util.py定…首先看路径 data文件夹分为model文件夹train文件夹和文件夹model文件夹存放模型文件train存放cat和dog的两个文件夹图片 validation和train一样。config.py存放配置的一些参数util.py定义AlexNet框架AlexNet实现模型的训练其他没有用到。 首先在config.py定义配置文件都是卷积层和全连接层用到的参数用字典的形式存储 代码如下 配置文件定义参数import tensorflow as tf learning_rate1e-4 training_iers200 batch_size50 display_step5 n_classes2 n_fc14096 n_fc22048W_conv{conv1:tf.Variable(tf.truncated_normal([11,11,3,96],stddev0.0001)),conv2: tf.Variable(tf.truncated_normal([5, 5, 96, 256], stddev0.01)),conv3: tf.Variable(tf.truncated_normal([3, 3, 256, 384], stddev0.01)),conv4: tf.Variable(tf.truncated_normal([3, 3, 384, 384], stddev0.01)),conv5: tf.Variable(tf.truncated_normal([3, 3, 384, 256], stddev0.01)),fc1: tf.Variable(tf.truncated_normal([6*6*256,n_fc1], stddev0.1)),fc2: tf.Variable(tf.truncated_normal([n_fc1, n_fc2], stddev0.1)),fc3: tf.Variable(tf.truncated_normal([n_fc2, n_classes], stddev0.1))} b_conv{conv1:tf.Variable(tf.constant(0.0,shape[96],dtypetf.float32)),conv2:tf.Variable(tf.constant(0.1,shape[256],dtypetf.float32)),conv3:tf.Variable(tf.constant(0.1,shape[384],dtypetf.float32)),conv4:tf.Variable(tf.constant(0.1,shape[384],dtypetf.float32)),conv5:tf.Variable(tf.constant(0.1,shape[256],dtypetf.float32)),fc1: tf.Variable(tf.constant(0.1,shape[n_fc1],dtypetf.float32)),fc2: tf.Variable(tf.constant(0.1,shape[n_fc2],dtypetf.float32)),fc3: tf.Variable(tf.constant(0.0,shape[n_classes],dtypetf.float32))} 在util.py定义AlexNet框架 定义 AlexNet框架import os import numpy as np from config import W_conv,b_conv,n_classes,learning_rate import tensorflow as tf构建AlexNet模型对特征图进行归一化 采用标准化处理def batch_norm(inputs,is_training,is_conv_outTrue,decay0.999):scaletf.Variable(tf.ones([inputs.get_shape()[-1]]))betatf.Variable(tf.zeros([inputs.get_shape()[-1]]))pop_mean tf.Variable(tf.zeros([inputs.get_shape()[-1]]),trainableFalse)pop_var tf.Variable(tf.ones([inputs.get_shape()[-1]]),trainableFalse)if is_training:if is_conv_out:batch_mean,batch_vartf.nn.moments(inputs,[0,1,2])else:batch_mean, batch_var tf.nn.moments(inputs, [0])#滑动平均train_meantf.assign(pop_mean,pop_mean*decaybatch_mean*(1-decay))train_var tf.assign(pop_var, pop_var * decay batch_var * (1 - decay))with tf.control_dependencies([train_mean,train_var]):return tf.nn.batch_normalization(inputs,batch_mean,batch_var,beta,scale,0.001)else:return tf.nn.batch_normalization(inputs,pop_mean, pop_var, beta, scale, 0.001) def build_cnn(x,y):x_imagetf.reshape(x,[-1,227,227,3])#卷积层1conv1tf.nn.relu(tf.nn.conv2d(x_image,W_conv[conv1],strides[1,4,4,1],paddingVALID)b_conv[conv1])conv1batch_norm(conv1,True)#池化层1pool1tf.nn.avg_pool(conv1,ksize[1,3,3,1],strides[1,2,2,1],paddingVALID)#LRN层1norm1tf.nn.lrn(pool1,5,bias1.0,alpha0.001/9.0,beta0.75)#卷积层2conv2tf.nn.relu(tf.nn.conv2d(norm1,W_conv[conv2],strides[1,1,1,1],paddingSAME)b_conv[conv2])conv2 batch_norm(conv2, True)#池化层2pool2tf.nn.avg_pool(conv2,ksize[1,3,3,1],strides[1,2,2,1],paddingVALID)#LRN层2norm2tf.nn.lrn(pool2,5,bias1.0,alpha0.001/9.0,beta0.75)#卷积层3conv3tf.nn.relu(tf.nn.conv2d(norm2,W_conv[conv3],strides[1,1,1,1],paddingSAME)b_conv[conv3])conv3 batch_norm(conv3, True)#卷积层4conv4tf.nn.relu(tf.nn.conv2d(conv3,W_conv[conv4],strides[1,1,1,1],paddingSAME)b_conv[conv4])conv4 batch_norm(conv4, True)#卷积层5conv5tf.nn.relu(tf.nn.conv2d(conv4,W_conv[conv5],strides[1,1,1,1],paddingSAME)b_conv[conv5])conv5 batch_norm(conv5, True)#池化层5pool5tf.nn.avg_pool(conv5,ksize[1,3,3,1],strides[1,2,2,1],paddingVALID)#全连接层1fc1tf.matmul(tf.reshape(pool5, [-1, 6 * 6 * 256]), W_conv[fc1]) b_conv[fc1]fc1 batch_norm(fc1, True,is_conv_outFalse)fc1tf.nn.relu(fc1)fc1tf.nn.dropout(fc1,0.5)#全连接层2fc2tf.matmul(fc1, W_conv[fc2]) b_conv[fc2]fc2 batch_norm(fc2, True, is_conv_outFalse)fc2tf.nn.relu(fc2)fc2tf.nn.dropout(fc2,0.5)#全连接层3fc3tf.matmul(fc2,W_conv[fc3])b_conv[fc3]#定义损失losstf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(logitsfc3,labelsy))optimizertf.train.GradientDescentOptimizer(learning_ratelearning_rate).minimize(loss)#评估模型accuarcytf.reduce_mean(tf.cast(tf.equal(tf.argmax(fc3,1),tf.argmax(y,1)),dtypetf.float32))return loss,optimizer,accuarcy 读取train.tfrecords并返回image和label 这个是已经做好的.tfrecords文件对于太大的不适合def read_and_decode(filename,batch_size):filename_queuetf.train.string_input_producer([filename])# 按队列的形式读取readertf.TFRecordReader()_,serialized_examplereader.read(filename_queue)#返回文件名和文件featurestf.parse_single_example(serialized_example,features{label:tf.FixedLenFeature([],tf.int64),#与存储的类型一致image:tf.FixedLenFeature([],tf.string)})imgtf.decode_raw(features[image],tf.uint8)imgtf.reshape(img,shape[227,227,3])#img tf.cast(img, dtypetf.float32) * (1.0 / 128) - 0.5label tf.cast(features[label], dtypetf.int32)img_batch, label_batch tf.train.shuffle_batch([img, label], batch_sizebatch_size,capacity64, min_after_dequeue32,num_threads64)return img_batch,tf.reshape(label_batch,[batch_size])将图片的路径和对应的标签存储在list中返回def get_file(dir):images []temp []for root,dirs,files in os.walk(dir):for name in files:images.append(os.path.join(root,name))for name in dirs:#以dogs cats文件夹形式读取temp.append(os.path.join(root,name))labels[]for one_folder in temp:n_imglen(os.listdir(one_folder))#展开cats或者dogs的图片letterone_folder.split(/)[-1]if lettercats:labelsnp.append(labels,n_img*[0])#np.append拼接 0是cat 1是dogelse:labelsnp.append(labels,n_img*[1])#打乱tempnp.array([images,labels])temptemp.transpose()np.random.shuffle(temp)image_listlist(temp[:,0])label_listlist(temp[:,1])label_list[int(float(i)) for i in label_list]return image_list,label_list太大的TFrecord数据集占内存用此方法可将需要数量的图片转换成TFrecord即可def get_batch(image_list,label_list,img_width,img_height,batch_size,capacity):imagetf.cast(image_list,dtypetf.string)labeltf.cast(label_list, dtypetf.int32)input_queuetf.train.slice_input_producer([image,label])labelinput_queue[1]image_contentstf.read_file(input_queue[0])imagetf.image.decode_jpeg(image_contents,channels3)imagetf.image.resize_image_with_crop_or_pad(image,img_width,img_height)imagetf.image.per_image_standardization(image)#将图片标准化image_batch,label_batchtf.train.batch([image,label],batch_sizebatch_size,num_threads64,capacitycapacity)label_batchtf.reshape(label_batch,[batch_size])return image_batch,label_batch实现标签的one-hot# #转换one-hot def one_hot(label):n_classesmax(label)1label np.eye(n_classes)[label.reshape(-1)]return label # 转换one-hot # def one_hot(labels): # n_sampleslen(labels) # n_classn_samples1 # onehot_labelnp.zeros((n_samples,n_class)) # onehot_label[np.arange(n_samples),labels]1 # return onehot_label最后在AlexNet.py调用即可 import tensorflow as tf import util import config import time import matplotlib.pyplot as plt直接读取整个train.tfrecord#filename./data/train/train.tfrecords #img_batch,label_batchutil.read_and_decode(filename,batch_size32)按照需求来读取图片dir./data/train image_list,label_listutil.get_file(dir) img_batch,label_batchutil.get_batch(image_list,label_list,227,227,batch_size32,capacity64) xtf.placeholder(shape[None,227,227,3],dtypetf.float32) ytf.placeholder(shape[None,config.n_classes],dtypetf.float32) loss,optimizer,accuarcyutil.build_cnn(x,y) def train(epoch):inittf.global_variables_initializer()saver tf.train.Saver()with tf.Session() as sess:sess.run(init)costs[]start_timetime.time()save_model./data/model/AlexNetModel.ckpttrain_writertf.summary.FileWriter(./log,sess.graph)#启动线程#coordtf.train.Coordinator()threads tf.train.start_queue_runners(sesssess)for i in range(epoch):image,labelsess.run([img_batch,label_batch])labels util.one_hot(label)_,cost,train_accuarcysess.run([optimizer,loss,accuarcy],feed_dict{x:image,y:labels})print(step{},loss{},train_accuarcy{}.format(i,cost,train_accuarcy))costs.append(cost)end_timetime.time()print(step{},time{}.format(i,(end_time-start_time)))print()print(optimization is finish)saver.save(sess,save_model)print(model save finished)# coord.request_stop()# coord.join(threads)plt.plot(costs)plt.show()plt.xlabel(iter)plt.ylabel(cost) if __name__ __main__:train(epoch50) 损失值打印结果 未加特征处理 加了归一化处理:明显损失值得到了减少 由于做好的train.TFrecorder数据集太大后面改成按照所需的数据量转换成TFrecorder。
http://www.ihoyoo.com/news/18849.html

相关文章:

  • 分类信息网站如何做优化设计一个网站报价
  • 网站怎么做下载链接中文域名网站跳转
  • 社交类网站手机模版四川城乡住房建设厅官网
  • 单页网站seo怎么做网站开发文件综述
  • 网站建设步骤图片素材wordpress dux3.0主题
  • 网站建设职责查建筑公司资质的网站
  • 长沙哪里做网站好现成的手机网站做APP
  • 淮南网站建设价格补习吧 一家专门做家教的网站
  • 电商网站建设存在的问题和处理方案建立网站的准备工作
  • 东莞网站建设如何做企业宣传片拍摄公司
  • 网页设计与制作课程教学应用案例广州 seo的网站
  • 怎样使wordpress网站文章左对齐织梦cms网站迁移
  • 网站建设无法访问网站简搜网站提交
  • 构站网怎样做淘宝商品链接导航网站
  • 网站模板 php商城网站带宽控制
  • 网站动态模板备案网站简介怎么写
  • 网站建设创意报告书wordpress简化评论
  • 网站规划在网站建设中的作用是wordpress 手机页面
  • 做的视频发到哪个网站集团做网站优势
  • 建设什么网站赚钱免费建立企业网站
  • 东莞网站制作搭建企业网站需求文档
  • 免费制作网站服务器怎么改版一个网站
  • 做产品网站营销推广网站邮件系统建设招标
  • 网站页面制作做网站需要哪些手续
  • 霍邱县住房和城乡建设局网站如何制作推广网站
  • 网站建设需要了解的信息做网站还是移动开发
  • 网站代建设费用镇江做网站多少钱
  • 沈阳网站关键词if设计大赛官网
  • 衡阳的房地产网站建设郑州网页制作案例
  • 成都 网站制作东莞建设工程公司