Neupy是一个人工神经网络的Python库。Nupy支持许多不同类型的神经网络从一个简单的感知器到深度学习模型。
使用指南
(一)安装Neupy :教程学习;了解多种不同的神经网络算法;阅读文章,学习更多有关神经网络的知识(链接、教程、文献资料、文章等)。
(二)神经网络的超参数优化 、可视化反向传播算法 、MNIST分类法 、离散Hopfield网络。
相关知识点
(一)卷积神经网络
(二)强化学习
(三)循环神经网络
(四)自编码器
(五)玻耳兹曼机
(六)MLP神经网络
(七)竞争神经网络
(八)径向基函数神经网络
(九)基于记忆的神经网络
实例演示
#主题:用Neupy实现泥石流数据中对“平均流速”的预测.
#选题来源:《基于BP神经网络的泥石流平均流速预测》
#作者:瑞翼工坊 夏水稻 李娇 刘妮
#时间:2018.06.02
import numpy as np
def read_csv_file(csv_filename):
#读取文件变量名称
csv_file = open(csv_filename)
csv_header = csv_file.readline()
csv_header_length = len(csv_header)
csv_header = csv_header[0:csv_header_length-1]#除去结尾的换行符号
csv_var_name = csv_header.split(',')#用“,”将读取的字段分隔开
csv_file.close()
#读取文件数值
csv_data = np.loadtxt(csv_filename,dtype='float32', delimiter=',',skiprows=1)
return [csv_var_name, csv_data ]
def data_standardization(input_data,primary_data,standardized_method):
#数据标准化
shape = input_data.shape
normal_data = np.empty(shape,dtype='float32')#构建一个特定空矩阵
for i in range(0,shape[1]):# 每一列都做标准化
data_max = np.max(primary_data[:,i])
data_min = np.min(primary_data[:,i])
data_mid = (data_max+data_min)/2
if standardized_method == '[0 1] normalization' :# 映射到 0 1 之间
normal_data[:,i] =(input_data[:,i] - data_min)/(data_max-data_min)
elif standardized_method == '[-1 1] normalization':# 映射到 -1 1 之间
normal_data[:,i] =2*(input_data[:,i] - data_mid)/(data_max-data_min)
else:
input('标准化方式有误')
return normal_data
filename = 'training_data.csv'#读取训练数据集
[var_name, training_data ] = read_csv_file( filename )
normal_data = data_standardization(training_data,training_data,'[-11] normalization')
x_train = normal_data[:,1:5 ]
y_train = normal_data[:, 5 ]
filename = 'test_data.csv'#读取测试数据集
[var_name, test_data ] = read_csv_file( filename )
normal_data = data_standardization(test_data,training_data,'[-1 1] normalization')
x_test = normal_data[:,1:5 ]
y_test = normal_data[:,5]
from sklearn.model_selection import train_test_split
from neupy import environment
environment.reproducible()
from neupy import algorithms, layers#设置具体的迭代层数
cgnet = algorithms.ConjugateGradient(
connection=[
layers.Input(4),
layers.Tanh(10),
layers.Tanh(5),
layers.Tanh(1),
],
search_method='golden',
show_epoch=3,
verbose=True,
addons=[algorithms.LinearSearch],
)
cgnet.train(x_train, y_train, x_test, y_test, epochs=20)
#作图
from neupy import plots
plots.error_plot(cgnet)
from neupy.estimators import rmsle
y_predict = cgnet.predict(x_test).round(1)
print('++++++')
成果展示图
(请横屏观看)
主代码:
注:此次代码主要服务于论文
《基于BP神经网络的泥石流平均流速预测》
领取专属 10元无门槛券
私享最新 技术干货