李宏毅机器学习第一个作业,改用pytorch实现的疑问

在学习李宏毅2020年课程中,作者尝试使用Pytorch重做Regression作业。他们构建了一个简单的神经网络,但发现通过Pytorch计算的loss与原始无Pytorch实现的loss相差甚远。尽管数据和方法相同,作者无法解释这种差异,并寻求帮助以理解可能的Pytorch代码错误。
摘要由CSDN通过智能技术生成

概述:跟着李宏毅2020的课程进行了学习,学到第三章CNN时,学习了pytorch,所以打算反过来,利用pytorch完成第一个regression的作业。想法是:利用pytorch构建一个只有输入和输出的神经网络,输入为18*9,输出为1,没有激活函数。loss函数为MSELoss,参数更新选用的是Adam。可是我通过pytorch调用函数的方法获得loss与直接写的loss差别巨大,一直找不到原因,希望可以得到帮助。

原Regression作业代码(无pytorch)

作业一的数据可以[点击下载](https://pan.baidu.com/share/init?surl=dwvmU5TUjXUJX3zQx7GsGg) 提取码:j9f8。请将所需资料下载好,确保有train.csv和test.csv两个文件,并保存到自己的目录当中。
import sys
import pandas as pd
import numpy as np
import math

#导入数据(前面‘’为数据存放路径,后面big5对字符串进行编码转换)
data = pd.read_csv('C:/Users/Administrator/Desktop/data/Reg/train.csv',encoding='big5')
#分割出前3列,从第4列开始将数据存到data
data = data.iloc[:, 3:]
#数据前处理
data[data == 'NR'] = 0
#矩阵变为嵌套数组的形式 
raw_data = data.to_numpy()
#对data进行调整,将4320*24重组为12*18*480
month_data = {
   }
for month in range(12):#运行12次
    sample = np.empty([18,480])#构建一个空的18*480的矩阵
    for day in range(20):
        sample[:,day * 24 : ( day + 1 ) * 24] = raw_data [ 18 * ( 20 * month + day ) : 18 * ( 20 * month + day + 1 ),: ]
    month_data[month] = sample
 #一个月共20*24个小时,每9个小时为一组数据,共20*24-9=471组作为x的行
 #对于每9个小时为一份data,这份data为一个18*9的矩阵,将其全部放到一列则为18*9的列,一共471*12行
x = np.empty([12*471,18*9],dtype = float)
y = np.empty([12*471,1],dtype = float)
for month in range(12):
    for day in range(20):
        for hour in range(24):
            if day == 19 and hour>14:
               continue
            x[month * 471 + day * 24 + hour, :] = month_data[month][:,day * 24 + hour : day * 24 + hour + 9].reshape(1,-1)
            y[month * 471 + day * 24 + hour, 0] = month_data[month][9,day * 24 + hour + 9]

#归一化
mean_x = np.mean(x,axis = 0)#计算每一列的均值
std_x = np.std(x,axis = 0)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值