TensorFlow实战-VGGNet

  1 from ... import input_data
  2 input_data=data_read()
  3 import tensorflow as tf
  4
  5 def conv(name,x,w,b):
  6     return tf.nn.relu(tf.nn.bias_add(tf.nn.conv2d(x,w,strides=[1,1,1,1],padding=‘SAME‘),b),name=name)
  7
  8 def max_pool(name,x,k):
  9     return tf.nn.max_pool(x,ksize=[1,k,k,1],strides=[1,k,k,1],padding=‘SAME‘,name=name)
 10
 11 def fc(name,x,w,b):
 12     return tf.nn.relu(tf.matmul(x,w)+b,name=name)
 13
 14 def vgg_net(_X,_weights,_biases,keep_prob):
 15         x_shape=_X.get_shape()
 16     _X=tf.reshape(_X,shape=[-1,X_shape[1].value,x_shape[2].value,x_shape[3].value])
 17
 18     conv1_1=conv(‘conv1_1‘,_X,_weights[‘wc1_1‘],_biases[‘bc1_1‘])
 19     conv1_2=conv(‘conv1_2‘,conv1_1,_weights[‘wc1_2‘],_biases[‘bc1_2‘])
 20     pool1=max_pool(‘pool1‘,conv1_2,k=2)
 21
 22     conv2_1=conv(‘conv2_1‘,pool1,_weights[‘wc2_1‘],_biases[‘bc2_1‘])
 23     conv2_2=conv(‘conv2_2‘,conv2_1,_weights[‘wc2_2‘],_biases[‘bc2_2‘])
 24     pool2=max_pool(‘pool2‘,conv2_2,k=2)
 25
 26     conv3_1=conv(‘conv3_1‘,pool2,_weights[‘wc3_1‘],_biases[‘bc3_1‘])
 27     conv3_2=conv(‘conv3_2‘,conv3_1,_weights[‘wc3_2‘],_biases[‘bc3_2‘])
 28     conv3_3=conv(‘conv3_3‘,conv3_2,_weights[‘wc3_3‘],_biases[‘bc3_3‘])
 29     pool3=max_pool(‘pool3‘,conv3_3,k=2)
 30
 31     conv4_1=conv(‘conv4_1‘,pool3,_weights[‘wc4_1‘],_biases[‘bc4_1‘])
 32     conv4_2=conv(‘conv4_2‘,conv4_1,_weights[‘wc4_2‘],_biases[‘bc4_2‘])
 33     conv4_3=conv(‘conv4_3‘,conv4_2,_weights[‘wc4_3‘],_biases[‘bc4_3‘])
 34     pool4=max_pool(‘pool4‘,conv4_3,k=2)
 35
 36     conv5_1=conv(‘conv5_1‘,pool4,_weights[‘wc5_1‘],_biases[‘bc5_1‘])
 37     conv5_2=conv(‘conv5_2‘,conv5_1,_weights[‘wc5_2‘],_biases[‘bc5_2‘])
 38     conv5_3=conv(‘conv5_3‘,conv5_2,_weights[‘wc5_3‘],_biases[‘bc5_3‘])
 39     pool5=max_pool(‘pool5‘,conv5_3,k=2)
 40
 41     _shape=pool5.get_shape()
 42     flatten=_shape[1].value*_shape[2].value*_shape[3].value
 43     pool5=tf.reshape(pool5,shape=[-1,flatten])
 44     fc1=fc(‘fc1‘,pool5,_weights[‘fc1‘],_biases[‘fb1‘])
 45     fc1=tf.nn.dropout(fc1,keep_prob)
 46
 47     fc2=fc(‘fc2‘,fc1,_weights[‘fc2‘],_biases[‘fb2‘])
 48     fc2=tf.nn.dropout(fc2,keep_prob)
 49
 50     fc3=fc(‘fc3‘,fc2,_weights[‘fc3‘],_biases[‘fb3‘])
 51     fc3=tf.nn.dropout(fc3,keep_prob)
 52
 53     out=tf.argmax(tf.nn.softmax(fc3),1)
 54
 55     return out
 56
 57 learning_rate=0.001
 58 max_iters=200000
 59 batch_size=100
 60 display_step=20
 61
 62 n_input=224*224*3
 63 n_classes=1000
 64 dropout=0.8
 65
 66 x=tf.placeholder(tf.float32,[None,n_input])
 67 y=tf.placeholder(tf.float32,[None,n_classes])
 68 keep_prob=tf.placeholder(tf.float32)
 69
 70 weights={
 71     ‘wc1_1‘:tf.Variable(tf.random_normal([3,3,3,64])),
 72     ‘wc1_2‘:tf.Variable(tf.random_normal([3,3,64,64])),
 73     ‘wc2_1‘:tf.Variable(tf.random_normal([3,3,64,128])),
 74     ‘wc2_2‘:tf.Variable(tf.random_normal([3,3,128,128])),
 75     ‘wc3_1‘:tf.Variable(tf.random_normal([3,3,128,256])),
 76     ‘wc3_2‘:tf.Variable(tf.random_normal([3,3,256,256])),
 77     ‘wc3_3‘:tf.Variable(tf.random_normal([3,3,256,256])),
 78     ‘wc4_1‘:tf.Variable(tf.random_normal([3,3,256,512])),
 79     ‘wc4_2‘:tf.Variable(tf.random_normal([3,3,512,512])),
 80     ‘wc4_3‘:tf.Variable(tf.random_normal([3,3,512,512])),
 81     ‘wc5_1‘:tf.Variable(tf.random_normal([3,3,512,512])),
 82     ‘wc5_2‘:tf.Variable(tf.random_normal([3,3,512,512])),
 83     ‘wc5_3‘:tf.Variable(tf.random_normal([3,3,512,512])),
 84     ‘fc1‘:tf.Variable(tf.random_normal([7*7*512,4096])),
 85     ‘fc2‘:tf.Variable(tf.random_normal([4096,4096])),
 86     ‘fc3‘:tf.Variable(tf.random_normal([4096,n_classes]))
 87 }
 88
 89 biases={
 90     ‘bc1_1‘:tf.Variable(tf.random_normal([64])),
 91     ‘bc1_2‘:tf.Variable(tf.random_normal([64])),
 92     ‘bc2_1‘:tf.Variable(tf.random_normal([128])),
 93     ‘bc2_2‘:tf.Variable(tf.random_normal([128])),
 94     ‘bc3_1‘:tf.Variable(tf.random_normal([256])),
 95     ‘bc3_2‘:tf.Variable(tf.random_normal([256])),
 96     ‘bc3_3‘:tf.Variable(tf.random_normal([256])),
 97     ‘bc4_1‘:tf.Variable(tf.random_normal([512])),
 98     ‘bc4_2‘:tf.Variable(tf.random_normal([512])),
 99     ‘bc4_3‘:tf.Variable(tf.random_normal([512])),
100     ‘bc5_1‘:tf.Variable(tf.random_normal([512])),
101     ‘bc5_2‘:tf.Variable(tf.random_normal([512])),
102     ‘bc5_3‘:tf.Variable(tf.random_normal([512]))
103 }
104
105 pred=vgg_net(x,weights,biases,keep_prob)
106
107 cost=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(pred,y))
108 optimizer=tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)
109
110 correct=tf.equal(tf.argmax(pred,1),tf.argmax(y,1))
111 accuracy=tf.reduce_mean(tf.cast(correct,float32))
112
113 init=tf.initialize_all_variables()
114
115 with tf.Session() as sess:
116     sess.run(init)
117     step=1
118
119     while step*batch_size<max_iters:
120         batch_xs,batch_ys=mnist.train.next_batch(batch_size)
121         sess.run(optimizer,feed_dict{x:batch_xs,y:batch_ys,keep_prob:dropout})
122
123     step+=1        
时间: 2024-10-17 09:56:25

TensorFlow实战-VGGNet的相关文章

《Tensorflow实战Google深度学习框架》PDF一套四本+源代码_高清_完整

TensorFlow实战 热门Tensorflow实战书籍PDF高清版一套共四本+源代码,包含<Tensorflow实战>.<Tensorflow:实战Google深度学习框架(完整版)>.<TensorFlow:实战Google深度学习框架(第2版)>与<TensorFlow技术解析与实战>,不能错过的学习Tensorflow书籍. TensorFlow是谷歌2015年开源的主流深度学习框架,目前已在谷歌.优步(Uber).京东.小米等科技公司广泛应用.&

TensorFlow实战之CNN实现对鸡蛋的分类

本文标签: TensorFlow TensorFlow实战之CNN 3.1问题分析 为了评估N个鸡蛋中是否有圈养鸡蛋,我们利用卷积神经网络(CNN)让计算机学习圈养鸡蛋和土鸡蛋图片的特征,然后根据鸡蛋的图片将其分类.通过对图片的预处理,将其转化为32*32相同大小的图片.在神经网络加载数据之后,会将其转化为32*32*3的数组.然后通过卷积和池化等一系列操作提取出图片的特征.以达到对鸡蛋进行分类的目的.我们主要用Python语言在TensorFlow中构建卷积神经网络(CNN),让CNN学习圈养

[Tensorflow实战Google深度学习框架

本系列为Tensorflow实战Google深度学习框架知识笔记,仅为博主看书过程中觉得较为重要的知识点,简单摘要下来,内容较为零散,请见谅. 2017-11-06 [第五章] MNIST数字识别问题 1. MNIST数据处理 为了方便使用,Tensorflow提供了一个类来处理MNIST数据,这个类会自动下载并转化MNIST数据的格式,将数据从原始的数据包中解析成训练和测试神经网络时使用的格式. 2. 神经网络模型训练及不同模型结果对比 为了评测神经网络模型在不同参数下的效果,一般会从训练数据

TensorFlow实战之Softmax Regression识别手写数字

     关于本文说明,本人原博客地址位于http://blog.csdn.net/qq_37608890,本文来自笔者于2018年02月21日 23:10:04所撰写内容(http://blog.csdn.net/qq_37608890/article/details/79343860).        本文根据最近学习TensorFlow书籍网络文章的情况,特将一些学习心得做了总结,详情如下.如有不当之处,请各位大拿多多指点,在此谢过. 一.相关概念 1.MNIST MNIST(Mixed

TensorFlow实战之实现AlexNet经典卷积神经网络

本文已同步本人另外一个博客(http://blog.csdn.net/qq_37608890/article/details/79371347) 本文根据最近学习TensorFlow书籍网络文章的情况,特将一些学习心得做了总结,详情如下.如有不当之处,请各位大拿多多指点,在此谢过. 一.AlexNet模型及其基本原理阐述 1.关于AlexNet 2012年,AlexKrizhevsky提出了深度卷积神经网络模型AlexNet,可以看作LeNet的一种更深更宽的版本.该模型包含了6亿3000万个连

分享《TensorFlow实战Google深度学习框架 (第2版) 》中文版PDF和源代码

下载:https://pan.baidu.com/s/1aD1Y2erdtppgAbk8c63xEw 更多最新的资料:http://blog.51cto.com/3215120 <TensorFlow实战Google深度学习框架(第2版)>中文版PDF和源代码中文版PDF,带目录标签,文字可以复制,363页.配套源代码:经典书籍,讲解详细:如图 原文地址:https://www.cnblogs.com/javapythonstudy/p/9873505.html

《TensorFlow实战Google深度学习框架 (第2版) 》中文版PDF和源代码

下载:https://pan.baidu.com/s/1aD1Y2erdtppgAbk8c63xEw 更多最新的资料:http://blog.51cto.com/3215120 <TensorFlow实战Google深度学习框架(第2版)>中文版PDF和源代码中文版PDF,带目录标签,文字可以复制,363页.配套源代码:经典书籍,讲解详细:如图 原文地址:http://blog.51cto.com/3215120/2310423

《TensorFlow实战》中文版PDF+源代码

下载:https://pan.baidu.com/s/1LiQM3JsI6Z3eyYh5txCGSA <TensorFlow实战>中文版PDF+源代码<TensorFlow实战>中文版PDF,313页,带书签和目录.配套源代码,经典资料. 讲述了TensorFlow的基础原理,TF和其他框架的异同,并用具体的代码完整地实现了各种类型的深度神经网络. 如图: 原文地址:https://www.cnblogs.com/javapythonstudy/p/9887091.html

分享《TensorFlow实战》中文版PDF+源代码

下载:https://pan.baidu.com/s/1LiQM3JsI6Z3eyYh5txCGSA <TensorFlow实战>中文版PDF+源代码<TensorFlow实战>中文版PDF,313页,带书签和目录.配套源代码,经典资料. 讲述了TensorFlow的基础原理,TF和其他框架的异同,并用具体的代码完整地实现了各种类型的深度神经网络. 如图: 原文地址:http://blog.51cto.com/3215120/2311665