深度学习和热舒适性

记录热舒适性的预测与推荐的学习

第一篇 从DNN开始探究

1. 选用工具

语言框架:pytorch
之前写深度学习使用的TensorFlow,这次的学习基于pytorch的学习,关于两者之间的区别,稍后有时间可以介绍,这里先留个坑,待之后时间回来填坑。
这里区别可以先参考pytorch和TensorFlow的区别之后有想法可以继续填坑。

2. 代码实现

第一篇我先实现一个简单的DNN代码,使用的数据集则是最经典的Minst,手写数据集。代码是参考pytorch示例:深度神经网络实现,这里我会复现下这里面的代码,可以直接参考我展示的下方代码,链接里会详细介绍了一些优化方法,有兴趣的可以点击去参考。

  1. 该神经网络结构:1输入层,1全连接的隐含层,1输出层,预期达到98%左右的准确率,下面来进行详细的代码设计,看看效果如何。
  2. 配置库和配置参数,这一步是动态修改的,在编写代码时用到什么库import就可以
import torch
import torch.nn as nn
import torchvision.datasets as dsets
import torchvision.transforms as transforms
from torch.autograd import Variable

torch.manual_seed(1)    # 设置人工种子,保证结果可重复
input_size = 784        # 输入特征的大小,图片为28*28
hidden_size = 500       # 隐藏层为500个神经元
num_classes = 10        # 输出层:10 类,手写数据集为10分类
num_epochs = 5          # 训练参数:训练轮数,根据训练结果可以调节
batch_size = 100        # 参数: 批大小 60000个训练样本要分为600个批次进行
learning_rate = 0.001     # 参数:学习率 一般默认为0.001,根据结果再调整
  1. 加载数据集,mnist数据集在pytorch中有集成,可以直接使用,放在./data目录中
# 加载数据集
train_dataset = dsets.MNIST(root='./data',
                            train=True,
                            transform=transforms.ToTensor(),
                            download=True)
# load test set
test_dataset = dsets.MNIST(root='./data',
                           train=False,
                           transform=transforms.ToTensor())
  1. 批处理数据
    torch.utils.data.DataLoader 函数:【在训练模型时使用到此函数,用来把训练数据分成多个小组,此函数每次抛出一组数据。直至把所有的数据都抛出。就是做一个数据的初始化。】
# 训练集的shuffle必须为True,表示每次从60000训练样本中随机选择100个作为一个批次
train_loader = torch.utils.data.DataLoader(dataset=train_dataset,
                                           batch_size=batch_size,
                                           shuffle=True)
# 测试集的shuffle要为False,即要保证10000个测试样本都只被预测一遍
test_loader = torch.utils.data.DataLoader(dataset=test_dataset,
                                          batch_size=batch_size,
                                          shuffle=False)
  1. 创建DNN模型,其中使用nn包来创建
# 创建DNN模型
class Net(nn.Module):
    def __init__(self, input_size, hidden_size, num_classes):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(input_size, hidden_size)         # 全连接
        self.relu == nn.ReLU(
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值