python卷积神经网络图像,python读取mnist数据集

  python卷积神经网络图像,python读取mnist数据集

  1.使用要点介绍:http://www.Sina.com/: SQDZDJ http://www.Sina.com/:(OP),是专门用于计算的运算节点。所有操作均为OP3358。

  接听电话:

  (1) tf.get_default_graph))).

  )2)OP、sess或张量的图形性质

  3358www。Sina.com/:会话:为操作程序图tensor提供占位符,运行时为operation指定参数http://www.Sina.com。4)直接修改2fzdhb列表graph中的数据:http://www.Sina.com/http://www.Sina.com/:s新sqdzdj数据358WWW不能跨维度修改。DZDJ,初始形状,tf。Tensor.get_shape(获取静态形状),tf。Tensor.set_shape:更新张量对象3358www的静态形状。张量)和Sinsor可以创建新的形状来描述原来sqdzdj运行的形状(动态变化)。创建一个新的SQDZDJ http://www.Sina.com/https://www.tensor flow.org/verg与不同的动态形状。

  卷积层、激活函数、池层、所有连接层

  一些大型网络包括session:提取特征图时卷积核的行为placeholder

  1.相同)跨边采样,采样区域与输入图像的像素宽度一致。

  2.有效:不跨边采样,输入图像的像素宽度作为采样区域feed_dict

  卷积不是为了减少数据量,而是在滤波中加入激活函数(sigmoid,relu)。池层用于减少参数数量。

  学习率不需要搜索,可能会造成梯度爆炸。

  增加激活函数:提高网络的非线性分割能力。

  使用sigmoid等函数通过反向传播计算误差梯度时,一开始计算量比较大,而使用Relu激活函数可以大大节省整个过程的计算量。

  其次,在深度网络中,sigmoid函数反向传播时,容易出现梯度爆炸Name

  功能:特征提取通过去除特征图中不重要的样本来减少参数数量。

  最常用的是maxpooling(),

  TF.nn.max_pool(value,ksize=,strides=,padding=,name=None).

  值:四维张量形状[批次,高度,宽度,通道]

  Ksize:池窗口大小,[1,ksize,ksize,1]

  步幅:步长,[1,步幅,步幅,1]

  填充:“相同”、“有效”、“Shape

  前一个卷积和池化相当于特征工程,后一个全连接相当于特征加权,最后一个全连接在整个卷积神经网络中充当“分类器”。reshape

  importtensorflowstfromtensorflow . examples . tutorials . mnistimportinput _ datafromtensorflow _ core . python . training stddev=1.0,定义函数def weight _ variables(shape):w=TF . copat . v1 . variable)TF . random _ normal _ iii用于初始化权重。

  t.v1.Variable(tf.constant(0.0,shape=shape))返回常见诸模型(): 自定义卷积模型:return: #准备数据的占位符x [None,784] y_true [None,10]带TF。变量_范围(数据):x=TF。compat。v1。占位符(TF。float 32,[None,784])y _ true=TF。compat。v1。占位符(TF。int 32,[None,10]) #2 .一卷积层卷积:5*5*1,32个步幅=1激活tf.nn.relu池化用TF。变量_范围( con v1 ):#随机初始化权重,偏置32 w_conv1=weight_variables([5,5,1,32])b _ con v1=bias _ variables([32])#对x进行形状的改变[无,784][无,28,28,1]x _ shape=TF。shape(x,[-1,28,28,1]) #[None,28,28,1] - [None,28,28,32]x _ relu 1=TF。nn。relu(TF。nn。conv 2d(x _ shape,w_conv1,stamps=[1,1,1,1],padding=SAME) b_conv1) #池化2*2,strides2 [None,28,28,32] - [None,14,14,32]x _ pool 1=TF。nn。max _ pool(x _ relu 1,ksize=[1,2,2,1],strides=[1,2,2,1],padding=SAME ) #3 .二卷积层5*5*32 64个滤波器,步幅=1激活:tf.nn.relu池化用TF。变量_范围( con v2 ):#随机初始化权重,偏置w_conv2=weight_variables([5,5,32,64])b _ con v2=bias _ variables([64])#卷积,激活,池化计算#[None,14,14,32] - [None,14,14,64]x _ rel U2=TF。nn。relu(TF。nn。conv 2d(x _ pool 1,w_conv2,stamps=[1,1,1,1],padding=SAME) b_conv2) #池化2*2,步数2,【无,14,14,64】 -》【无,7,7,64】x _ pool 2=TF。nn。max _ pool(x _ rel U2,ksize=[1,2,2,1],步数=[1,2,2,1],填充=相同)#4。全连接层[None,7,7,64] - [None,7*7*64]*[7*7*64,10] [10]=[None,10]带TF。变量_范围( con v2 ):#随机初始化权重和偏置w_fc=weight_variables([7*7*64,10]) b_fc=bias_variables([10]) #修改形状【无,7,7,64】 -》【无,7 * 7 * 64】x _ fc _ shape=TF。shape[x _ pool 2,[-1,7*7*64]] #进行矩阵运算得出每个样本的10个结果y _ predict=TF。matmul(x _ fc _ reshape,w_fc) b_fc return x,y_true,y_predictdef conv_fc(): #获取真实的数据mnist=input _ data。读取数据集( ./data/mnist/input_data/,one_hot=True) #定义模型,得出输出x,y_true,y_predict=模型()#进行交叉熵损失计算,然后求平均值损失=TF。reduce _均值(TF。nn。soft max _ cross _ entropy _ with _ logits(labels=y _ true,logits=y_predict)) #梯度下降求出损失用TF。变量_范围(优化器):train _ op=TF。compat。v1。火车。gradiendensentopmizer(0.0001).最小化(损失)#5。计算准确率用TF。变量_范围( ACC ):equal _ list=TF。相等(TF。arg max(y _ true,1),tf.argmax(y_predict,1)) #equal_list None个样本[1,0,1,0,1,1,]精度=TF。reduce _均值(TF。cast(equal _ list,tf.float32)) #定义一个初始化变量的op init _ op=TF。compat。v1。全局变量初始值设定项()#开启会话运行用tf.compat.v1.Session()作为sess: sess.run(init_op) #循环去训练对于范围内的我(1000):#取出真实存在的特征值和目标值mnist_x,Mn ist _ y=Mn ist。火车。下一批(50)#运行火车_操作训练sess.run(train_op,feed_dict={x: mnist_x,y_true:mnist_y}) print(训练第%d步,准确率:%f%(i,sess.run(accuracy,feed_dict={x:mnist_x,y _ true:mnist _ y })if _ _ name _ _= _ _ main _ _ :full _ connected()

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: