共计 1487 个字符,预计需要花费 4 分钟才能阅读完成。
基于 mindspore 实现全连贯网络的波士顿数据集房价预测北京理工大学邱小尧,写本次帖子是基于机器学习实际课程实现的相干应用 mindspore 深度学习框架实现的工作,写一些分享心得,本次试验咱们预采纳 mindspore 进行数据导入与筹备在这里咱们应用筹备好的 txt 文档进行数据读取,其中 CRIM,ZN,INDUS,CHAS,NOX,RM,AGE,DIS,RAD,TAX,PTRATI,B,LSTAT,MEDV 为其属性,其中 MEDV 为咱们须要预测的房价。构建可依照如下办法结构 DatasetGenerator 并依此失去咱们的 datasetclass DatasetGenerator:
def __init__(self):
self.data = data[:,:-1]
self.label = data[:,-1]
def __getitem__(self, index):
return self.data[index], self.label[index]
def __len__(self):
return len(self.data)
dataset_generator = DatasetGenerator()
dataset = ds.GeneratorDataset(dataset_generator, [“data”, “label”], shuffle=False)
dataset = dataset.shuffle(buffer_size=15)
dataset = dataset.batch(batch_size=16)
train_dataset,test_dataset=dataset.split([0.8,0.2])
复制全连贯网络模型建设接下来咱们就开始构建全连贯网络了仅采纳三层全连贯,较为简单。class net(nn.Cell):
def __init__(self):
super(net,self).__init__()
self.fc1 = nn.Dense(13,10)
self.relu = nn.ReLU()
self.fc2 = nn.Dense(10,1)
def construct(self, x):
x = self.fc1(x)
x = self.relu(x)
x = self.fc2(x)
return x
复制设定优化器以及其余参数在这里咱们采纳 MSEloss 函数,以及 Adam 优化器,感兴趣的话能够探索其余参数。net = net()
loss = nn.MSELoss()
learning_rate = 1e-3
optim = nn.Momentum(net.trainable_params(), learning_rate, 0.9)
optim = nn.SGD(net.trainable_params(),learning_rate=learning_rate,momentum=0.9)
optim = nn.AdamWeightDecay(net.trainable_params(),learning_rate=learning_rate,weight_decay=1e-5)
cb = LossMonitor()
epochs = 100
复制模型训练 Mindspore 实现的模型训练就很简略了,封装的比拟好。model = Model(net, loss_fn=loss, optimizer=optim)
model.train(epoch=epochs, train_dataset=train_dataset, callbacks=cb)
复制测试后果在最终后果上,咱们发现神经网络训练的拟合成果并不是很好,大概率因为 Boston 数据集数据量较少的起因。