Python进行深度学习—线性回归

第一步,读取数据。
import pandas as pd
# 读取数据
MasterFile = pd.read_excel('F:\\Anaconda文件\\人脸打分\\SCUT-FBP5500_with_Landmarks\\FaceScore.xlsx')
# 查看文件有多少行和列
print(MasterFile.shape)
MasterFile[0:5]
第二步,处理数据。提取原始数据中有用信息。
# 取中间两列
Master = MasterFile[['Filename', 'Rating']]
# 取各图片评分的均值
Master = Master['Rating'].groupby(Master['Filename']).mean()
# 设置为数据框
Master1 = pd.DataFrame(list(Master.index), columns = ['Filename'])
Master2 = pd.DataFrame(list(Master.values), columns = ['Rating'])
# 合并数据框
Master = Master1.join(Master2)
Master[:5]
第三步,设置模型的X和Y,并进行标准化。
mport numpy as np
from PIL import Image

FileNames = Master['Filename']
N = len(FileNames)
# 设置尺寸
IMSIZE = 128
# 构建立体矩阵
X = np.zeros([N, IMSIZE, IMSIZE, 3])
# 循环设置每个图片, 并转换为数组----确定线性回归的 X
for i in range(N):
    Myfile = FileNames[i]
    Im = Image.open('F:\\Anaconda文件\\人脸打分\SCUT-FBP5500_with_Landmarks\\Images\\' + Myfile)
    # 重置照片尺寸
    Im = Im.resize([IMSIZE, IMSIZE])
    # 将像素矩阵设置在 0~1 之间
    Im = np.array(Im)/255
    X[i, ] = Im
Y = np.array(Master['Rating']).reshape([N,1])
#  标准化 Y
Y = (Y - np.mean(Y))/np.std(Y)
第四步,设置训练集和测试集。
# 设置 训练集 和 测试集
from sklearn.model_selection import train_test_split
X0,X1,Y0,Y1 = train_test_split(X,Y,test_size = 0.5, random_state = 0)

可视化部分数据。

# 检测上述操作之后的图像
from matplotlib import pyplot as plt
plt.figure()
fig, ax = plt.subplots(2,5)
fig.set_figheight(7.5)
fig.set_figwidth(15)
# 拉直
ax = ax.flatten(15)
# 画图
for i in range(10):
    ax[i].imshow(X0[ i, :, :, :])
    ax[i].set_title(np.round(Y0[i],2))
第五步,构建模型。
# 模型设计--图纸
from keras.layers import Dense, Flatten, Input
from keras import Model

# 设置输入层
input_layer = Input([IMSIZE, IMSIZE, 3])
x = input_layer
# 拉直
x = Flatten()(x)
# 只输出一个标量
x = Dense(1)(x)
# 设置输出层
out_layer = x
# 设置模型
model = Model(input_layer, out_layer)
model.summary()
第六步,拟合模型。将数据代入第五步构建的模型,得到模型参数。
# 拟合模型--房子
model.fit(X0,Y0, validation_data = [X1, Y1], batch_size = 100, epochs = 100) 
# 设置目标函数--墙壁 
from keras.optimizers import Adam
model.compile(loss = 'mse', optimizer = Adam(lr = 0.01), metrics= ['mse'])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值