当前位置:   article > 正文

如何用python搭建神经网络,python画神经网络结构图_python快速构建神经网络 csdn

python快速构建神经网络 csdn

1、怎样用python构建一个卷积神经网络模型

上周末利用python简单实现了一个卷积神经网络,只包含一个卷积层和一个maxpooling层,pooling层后面的多层神经网络采用了softmax形式的输出。实验输入仍然采用MNIST图像使用10个feature map时,卷积和pooling的结果分别如下所示。

部分源码如下:

[python] view plain copy

  • #coding=utf-8

  • '''''

  • Created on 2014年11月30日

  • @author: Wangliaofan

  • '''

  • import numpy

  • import struct

  • import matplotlib.pyplot as plt

  • import math

  • import random

  • import copy

  • #test

  • from BasicMultilayerNeuralNetwork import BMNN2

  • def sigmoid(inX):

  • if 1.0+numpy.exp(-inX)== 0.0:

  • return 999999999.999999999

  • return 1.0/(1.0+numpy.exp(-inX))

  • def difsigmoid(inX):

  • return sigmoid(inX)*(1.0-sigmoid(inX))

  • def tangenth(inX):

  • return (1.0*math.exp(inX)-1.0*math.exp(-inX))/(1.0*math.exp(inX)+1.0*math.exp(-inX))

  • def cnn_conv(in_image, filter_map,B,type_func='sigmoid'):

  • #in_image[num,feature map,row,col]=>in_image[Irow,Icol]

  • #features map[k filter,row,col]

  • #type_func['sigmoid','tangenth']

  • #out_feature[k filter,Irow-row+1,Icol-col+1]

  • shape_image=numpy.shape(in_image)#[row,col]

  • #print "shape_image",shape_image

  • shape_filter=numpy.shape(filter_map)#[k filter,row,col]

  • if shape_filter[1]>shape_image[0] or shape_filter[2]>shape_image[1]:

  • raise Exception

  • shape_out=(shape_filter[0],shape_image[0]-shape_filter[1]+1,shape_image[1]-shape_filter[2]+1)

  • out_feature=numpy.zeros(shape_out)

  • k,m,n=numpy.shape(out_feature)

  • for k_idx in range(0,k):

  • #rotate 180 to calculate conv

  • c_filter=numpy.rot90(filter_map[k_idx,:,:], 2)

  • for r_idx in range(0,m):

  • for c_idx in range(0,n):

  • #conv_temp=numpy.zeros((shape_filter[1],shape_filter[2]))

  • conv_temp=numpy.dot(in_image[r_idx:r_idx+shape_filter[1],c_idx:c_idx+shape_filter[2]],c_filter)

  • sum_temp=numpy.sum(conv_temp)

  • if type_func=='sigmoid':

  • out_feature[k_idx,r_idx,c_idx]=sigmoid(sum_temp+B[k_idx])

  • elif type_func=='tangenth':

  • out_feature[k_idx,r_idx,c_idx]=tangenth(sum_temp+B[k_idx])

  • else:

  • raise Exception

  • return out_feature

  • def cnn_maxpooling(out_feature,pooling_size=2,type_pooling="max"):

  • k,row,col=numpy.shape(out_feature)

  • max_index_Matirx=numpy.zeros((k,row,col))

  • out_row=int(numpy.floor(row/pooling_size))

  • out_col=int(numpy.floor(col/pooling_size))

  • out_pooling=numpy.zeros((k,out_row,out_col))

  • for k_idx in range(0,k):

  • for r_idx in range(0,out_row):

  • for c_idx in range(0,out_col):

  • temp_matrix=out_feature[k_idx,pooling_size*r_idx:pooling_size*r_idx+pooling_size,pooling_size*c_idx:pooling_size*c_idx+pooling_size]

  • out_pooling[k_idx,r_i

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/427190
推荐阅读
相关标签
  

闽ICP备14008679号