当前位置: 首页 > 科技观察

在波士顿住房数据集上训练一个简单的MLP回归模型

时间:2023-03-19 17:09:51 科技观察

多层感知器(MLP)有着非常悠久的历史。多层感知器(MLP)是深度神经网络(DNN)的基本算法。层感知器)和KerasMLP结构每个MLP模型由一个输入层、多个隐藏层和一个输出层组成每层无限数量的神经元具有一个隐藏层的MLP-输入神经元数量:3-隐藏神经元元素数量:4-数量输出神经元:2个MLP用于回归任务当目标(“y”)连续时对于损失函数和评估指标,通常使用均方误差(MSE)来自tensorflow.keras.datasetsimportboston_housing(X_train,y_train),(X_test,y_test)=boston_housing.load_data()数据集说明BostonHousingDataset共有506个数据实例(404个训练和102个测试)13个属性(特征)来预测“某个位置的房屋中值”文件号:https://keras.io/datasets/1。创建模型Keras模型对象可以使用Sequential类创建。一开始,模型本身是空的。它是通过“添加”附加层并编译文档来完成的:https://keras.io/models/sequential/fromtensorflow.keras.modelsimportSequentialmodel=Sequential()1-1。添加层Keras层可以“添加”到模型添加层就像在文档中一个接一个地堆叠乐高积木:https://keras.io/layers/core/fromtensorflow.keras.layersimportActivation,Dense#Kerasmodelwithtwohiddenlayerwith10neuronseachmodel.add(Dense(10,input_shape=(13,)))#Inputlayer=>input_shape应该明确指定model.add(Activation('sigmoid'))model.add(Dense(10))#Hiddenlayer=>onlyoutputdimensionshouldbedesignatedmodel.add(Activation('sigmoid'))model.add(Dense(10))#Hiddenlayer=>onlyoutputdimensionshouldbedesignatedmodel.add(Activation('sigmoid'))model.add(Dense(1))#Outputlayer=>outputdimension=1sinceitisregressionproblem#Thisequivalenttotheabovecodeblockmodel.add(Dense(10,input_shape=(13,),activation='sigmoid'))model.add(Dense(10,activation='sigmoid'))model.add(Dense(10,activation='sigmoid'))model.add(Dense(1))1-2。模型编译Keras模型应该在训练之前“编译”应该指定损失类型(函数)和优化器文档(优化器):https://keras.io/optimizers/文档(损失):https://keras.io/losses/fromtensorflow.kerasimportoptimizerssgd=optimizers.SGD(lr=0.01)#stochasticgradientdescentoptimizermodel.compile(optimizer=sgd,loss='mean_squared_error',metrics=['mse'])#forregressionproblems,meansquarederror(MSE)isoftenemployedmodelsummarymodel.summary()模型:“顺序”apeParam#=================================================================密集(密集)(无,10)140______________________________________________________________激活(激活)(无,10)0___________________________________________________________dense_1(密集)(无,10)110_______________________________________________________activation_1(激活)(无,10)0_________________________________________________________________dense_2(Dense)(None,10)110_________________________________________________________________activation_2(Activation)(None,10)0_________________________________________________________________dense_3(Dense)(None,1)11_________________________________________________________________dense_4(Dense)(None,10)20_________________________________________________________________dense_5(Dense)(None,10)110_________________________________________________________________dense_6(密集)(无,10)110_________________________________________________________________dense_7(密集)(无,1)11=======================================================================总参数:622可训练参数:622不可训练参数:0,verbose=1)3.评估Keras模型,可以使用evaluate()函数计算评估结果包含在列表文件中:https://keras.io/metrics/results=model.evaluate(X_test,y_test)print(model.metrics_names)#listofmetricnamesthemodelisemployingprint(results)#actualfigureofmetricscomputedprint('loss:',results[0])print('mse:',resulTS[1])