Python告诉我,我是不是世界上最美的人?

  • A+
所属分类:编程语言

Python告诉我,我是不是世界上最美的人?

Python告诉我,我是不是世界上最美的人?

数据集中还包括一些明星。这张Julia Roberts的照片平均得分为3.78:

Python告诉我,我是不是世界上最美的人?

Python告诉我,我是不是世界上最美的人?

Python告诉我,我是不是世界上最美的人?

Python告诉我,我是不是世界上最美的人?

from keras.applications import ResNet50

ResNet是一个由微软开发的深度卷积网络,它赢得了2015 年的ImageNet图像分类任务竞赛。

keras中,当我们初始化resnet50模型时,我们创建了一个ResNet50结构的模型,并且下载了在ImageNet数据集上训练的权重。

论文的作者没并有提到他们究竟是如何训练模型的,不过我会尽力做到最好。

我想删除最后一层(“softmax”层)并添加一个没有激活函数的全连接层来做回归。

resnet = ResNet50(include_top=False, pooling=’avg’)

model = Sequential()

model.add(resnet)

model.add(Dense(1))

model.layers[0].trainable = False

print model.summary()

# Output:

Layer (type) Output Shape Param # ================================================================= resnet50 (Model) (None, 2048) 23587712 _________________________________________________________________ dense_1 (Dense) (None, 1) 2049 ================================================================= Total params: 23,589,761

Trainable params: 23,536,641

Non-trainable params: 53,120

Python告诉我,我是不是世界上最美的人?

论文使用2种方法训练模型:5折交叉验证和以6:4的比例将数据集分割为训练集和测试集。他们使用皮尔逊相关系数(PC),平均绝对误差(MAE)和均方根误差(RMSE)来测评估模型的结果。以下是他们使用5折交叉验证得到的结果:

Python告诉我,我是不是世界上最美的人?

这些是他们使用6:4分割数据集获得的结果:

Python告诉我,我是不是世界上最美的人?

我以8:2的比例分割数据集,所以它类似于执行1折交叉验证。

我得到的结果如下:

非常好的结果。另外,也可以看看散点图和直方图:

Python告诉我,我是不是世界上最美的人?

原始分数分布(标准化后的):

Python告诉我,我是不是世界上最美的人?

预测分数分布(标准化后的):

Python告诉我,我是不是世界上最美的人?

结果看起来不错。现在在我身上试试这个这个神经网络。我首先使用这张照片:

Python告诉我,我是不是世界上最美的人?

我的分数是2.85,这意味着我的颜值比数据集中52%的人高。不得不说我有点失望,我以为我的分数会高一些,所以我试图提高我的分数。

我拍了很多照片,最终我得到了3.15分,这意味着我比数据集中64%的人更具吸引力。

Python告诉我,我是不是世界上最美的人?

这比之前好很多了,不过我必须诚实地说,我希望还能更高:)

最后一点,我使用Google Colaboratory构建和调整了这个模型,简而言之,Google Colaboratory能为你提供一个免费使用GPU的python notebook!

Python告诉我,我是不是世界上最美的人?

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: