如何用python搭建神经网络,python画神经网络结构图

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一种广泛使用的编程语言,用于构建各种类型的应用程序,包括机器学习模型。MLP(多层感知器)是一种常见的人工神经网络模型,用于解决分类和回归问题。下面是使用Python搭建MLP的一般步骤: 1. 导入所需的库:首先,你需要导入Python中的一些常用库,如NumPy(用于数值计算)、Pandas(用于数据处理)、Scikit-learn(用于机器学习)等。 2. 准备数据:接下来,你需要准备你的数据集。通常,你需要将数据集分为输入特征和目标变量。确保数据集已经进行了预处理和标准化。 3. 构建模型:使用Python中的机器学习库(如Scikit-learn或TensorFlow)来构建MLP模型。你可以选择使用现有的库提供的API来构建模型,也可以使用深度学习框架(如Keras或PyTorch)来自定义模型。 4. 定义模型结构:在构建模型之前,你需要定义模型的结构。MLP由多个层组成,每个层都包含多个神经元。你可以选择不同的激活函数、损失函数和优化算法来定义模型。 5. 编译模型:在定义模型结构后,你需要编译模型。这涉及选择适当的损失函数和优化算法,并设置评估指标。 6. 训练模型:使用训练数据集来训练模型。通过迭代训练数据集多次,模型将逐渐学习到数据的模式和特征。 7. 评估模型:在训练完成后,使用测试数据集来评估模型的性能。你可以计算准确率、精确率、召回率等指标来评估模型的性能。 8. 使用模型:一旦你对模型的性能感到满意,你可以使用该模型来进行预测。将新的输入数据传递给模型,它将输出相应的预测结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值