<python数据分析与挖掘实战>第10章 训练多层神经网络的错误解决

我用的是win7 py36,在学习这本书第10章时,运行书中的源代码老是出错,这里记录一下.

书中源代码是:

import numpy as np
import pandas as pd
from pandas import DataFrame
from pandas import Series
from numpy import nan as NA


datafile = 'D:\data\chapter10\demo\data\\train_neural_network_data.xls'
datafile2 = 'D:\data\chapter10\demo\data\\test_neural_network_data.xls'

data_train = pd.read_excel(datafile)
data_test = pd.read_excel(datafile2)
y_train = data_train.iloc[:, 4].as_matrix()
x_train = data_train.iloc[:, 5:17].as_matrix()
y_test = data_test.iloc[:, 4].as_matrix()
x_test = data_test.iloc[:, 5:17].as_matrix()

from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
model = Sequential()
model.add(Dense(11, 17))
model.add(Activation('relu'))
model.add(Dense(17, 10))
model.add(Activation('relu'))
model.add(Dense(10, 1))
model.add(Activation('sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', class_mode='binary')

model.fit(x_train, y_train, nb_epoch=100, batch_size=1)
model.save_weights('net.model')
r = pd.DataFrame(model.predict_classes(x_test), columns=['预测结果'])
pd.concat([data_test.iloc[:, :5], r], axis=1).to_excel('test.xls')
model.predict(x_test)

在中间model.add方法中,Dense设置错误了:应该修改为:

model = Sequential() #建立模型
model.add(Dense(input_dim=11, output_dim=17)) #添加输入层、隐藏层的连接
model.add(Activation('relu')) #以Relu函数为激活函数
model.add(Dense(output_dim=17, inout_dim=10)) #添加隐藏层、隐藏层的连接
model.add(Activation('relu')) #以Relu函数为激活函数
model.add(Dense(input_dim=10, output_dim=1)) #添加隐藏层、输出层的连接
model.add(Activation('sigmoid')) #以sigmoid函数为激活函数
#编译模型,损失函数为binary_crossentropy,用adam法求解
model.compile(loss='binary_crossentropy', optimizer='adam')

model.fit(x_train, y_train, nb_epoch = 100, batch_size = 1) #训练模型
model.save_weights('net.model') #保存模型参数

就可以正常运行了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值