在python中按吴恩达教学实现模型的建立

——本文仅个人理解向,不具很高的指导意义。

文章是为了实现图像分类与预测

1:获得数据集(已知信息):

即教学中的x。

//物种名称

因为输入的数据是数组,而名称是字符串。我们要构造字典,用数字来表示名称。

dict{名字:数字}

//具体图像

因为已知的每一个文件夹是一个物种,那么我们需要将这些文件的路径和文章名称(标签)建立连续

for 具体某一物种 in os.listdir(所有图像的路径):
    if i not in 错误文件: 
        for 具体某一张 in os.listdir(os.path.join(所有图像的路径, 具体某一物种)):
            data_list.append(f'{os.path.join(所有图像的路径, 具体某一物种, 具体某一张)}\t{label_dic[具体某一物种]}\n')

如图所示就实现了路径与标签之间的关系

而吴恩达所讲述里面,数据应该是特征值一样的存在。我们去制作模型就是为了让机器能通过不同的特征值将未知的图像预测出来。(在这里是指输入图片,返回的标签和图片是对应的)

将路径打开获得图像,再对图像做处理获得图像的数据,这些图像数据和标签就是吴恩达中的x.

将x分为训练集和测试集,用训练集获得的假设函数用以测试集验证是否准确。

还可以增加验证集。

2:假设函数:

根据理解,这个模型应该是一个神经网络的形式,我们的假设函数就是很多的激活函数的作用下获得的。

我选择的是:paddle.nn.ReLU()        #激活函数

具体这个激活函数在官方的库里有介绍,这里就不多说明。

3:代价函数:

 loss=paddle.nn.CrossEntropyLoss(), #指定损失函数

4:关于梯度下降之类的,机械学习去不断更正假设函数里面的参数

 parameters=model.parameters()

5:学习率:

learning_rate=0.0001

6:评估:

paddle.metric.Accuracy()) #指定评估方法

输入的数据通过模型算出的标签和实际标签是否相同,大量数据的准确率。通过评估可以去减小我们的学习率。

7:过拟合和正则化:

在评估操作后(学习率改变后)值仍不准确,那就可能是过拟合,可以通过正则化的方式去拟合。

paddle.nn.Dropout(0.2)   #正则化

至此已经将所有信息与吴恩达课程所学对应上了。

最后做一下建立模型的总结:

1:获得数据

2:建立模型(可以在已有模型上进行添加和更改,即预训练模式,可以加快模型的实现准确率)

3:优化(改变学习率,正则化……)

4:评估(测试集的准确率,是优化的依据)

5:预测

本文仅是理解过程,如果想具体实现,可以参考百度飞桨图像分类------第三天(实现蝴蝶图像分类)_iterhuiの博客-CSDN博客

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值