![](https://img-blog.csdnimg.cn/dc21ef2ce64d4133bb3245e8898fcbc2.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
深度学习
文章平均质量分 50
深度学习专栏
梦码城
以梦为码,不负韶华
展开
-
Pytorch中的梯度知识总结
你真的了解Pytorch中梯度的计算原理吗?这篇文章主要涉及Pytorch中梯度计算的知识,包括什么是叶子向量,梯度反向传播原理,参数优化过程的详细解释。原创 2022-11-02 09:54:39 · 3647 阅读 · 0 评论 -
DQN强化学习实践
DQN强化学习实践import torchimport torch.nn as nnimport torch.nn.functional as Fimport numpy as npimport gym# 定义超参数BATCH_SIZE = 32LR = 0.01EPSILON = 0.9 # 最优选择动作百分比GAMMA = 0.9 # 奖励递减参数TARGET_REPLACE_ITER = 100 # Q 现实网络的更新频率MEMORY_CAPACITY = 2000原创 2022-01-03 07:53:41 · 272 阅读 · 0 评论 -
逻辑回归、深度学习简介、反向传播
Logistic Regression逻辑回归模型介绍Logistic Regression 虽然被称为回归,但其实际上是分类模型,并常用于二分类。Logistic Regression 因其简单、可并行化、可解释强深受工业界喜爱。Logistic 回归的本质是:假设数据服从这个分布,然后使用极大似然估计做参数的估计。Logistic 分布是一种连续型的概率分布,其分布函数和密度函数分别为:Logistic 分布是由其位置和尺度参数定义的连续分布。Logistic 分布的形状与正态分布的形状相原创 2021-10-17 22:11:37 · 982 阅读 · 0 评论 -
使用 DataLoader 做批训练
使用 DataLoader 做批训练DataLoader 是 torch 给你用来包装你的数据的工具. 所以你要讲自己的 (numpy array 或其他) 数据形式装换成 Tensor, 然后再放进这个包装器中. 使用 DataLoader 有什么好处呢? 就是他们帮你有效地迭代数据import torchimport torch.utils.data as Data# 用于设计随机初始化种子的,要知道神经网络都需要初始化,那么如何初始化,以及怎么保证初始化每次都相同?这时候使用同样的随机初始化转载 2021-04-30 19:45:24 · 376 阅读 · 1 评论 -
卷积神经网络 CNN (Convolutional Neural Network)
卷积神经网络 CNN (Convolutional Neural Network)卷积神经网络是近些年逐步兴起的一种人工神经网络结构, 因为利用卷积神经网络在图像和语音识别方面能够给出更优预测结果, 这一种技术也被广泛的传播可应用. 卷积神经网络最常被应用的方面是计算机的图像识别, 不过因为不断地创新, 它也被应用在视频分析, 自然语言处理, 药物发现, 等等. 近期最火的 Alpha Go, 让计算机看懂围棋, 同样也是有运用到这门技术.卷积 和 神经网络我们来具体说说卷积神经网络是如何运作的吧,转载 2021-04-30 20:37:20 · 402 阅读 · 1 评论 -
李宏毅机器学习总结
人工智能与机器学习与深度学习之间的关系机器学习的三类任务第一类是无监督学习,指的是从信息出发自动寻找规律,并将其分成各种类别,有时也称"聚类问题"。第二类是监督学习,监督学习指的是给历史一个标签,运用模型预测结果。如有一个水果,我们根据水果的形状和颜色去判断到底是香蕉还是苹果,这就是一个监督学习的例子。最后一类为强化学习,是指可以用来支持人们去做决策和规划的一个学习方式,它是对人的一些动作、行为产生奖励的回馈机制,通过这个回馈机制促进学习,这与人类的学习相似,所以强化学习是目前研究的重要方向之一。原创 2021-10-24 15:11:26 · 3059 阅读 · 0 评论 -
加速神经网络训练
加速神经网络训练Stochastic Gradient Descent (SGD)所以, 最基础的方法就是 SGD 啦, 想像红色方块是我们要训练的 data, 如果用普通的训练方法, 就需要重复不断的把整套数据放入神经网络 NN训练, 这样消耗的计算资源会很大.我们换一种思路, 如果把这些数据拆分成小批小批的, 然后再分批不断放入 NN 中计算, 这就是我们常说的 SGD 的正确打开方式了. 每次使用批数据, 虽然不能反映整体数据的情况, 不过却很大程度上加速了 NN 的训练过程, 而且也不会丢失太转载 2021-04-30 19:58:15 · 113 阅读 · 1 评论 -
PyTorch安装与学会建立第一个神经网络
PyTorch安装1 创建conda虚拟环境conda create -n PyTorch python=3.62 进入PyTorch虚拟环境conda activate PyTorch3 安装PyTorchconda install pytorch torchvision torchaudio cpuonly -c pytorchnumpy与torch的转换与运算import torchimport numpy as np# numpy 与 torch 的矩阵转换np_data原创 2021-04-21 22:04:34 · 85 阅读 · 0 评论 -
Optimizer优化器
Optimizer优化器SGD 是最普通的优化器, 也可以说没有加速效果, 而 Momentum 是 SGD 的改良版, 它加入了动量原则. 后面的 RMSprop 又是 Momentum 的升级版. 而 Adam 又是 RMSprop 的升级版. 不过从这个结果中我们看到, Adam 的效果似乎比 RMSprop 要差一点. 所以说并不是越先进的优化器, 结果越佳. 我们在自己的试验中可以尝试不同的优化器, 找到那个最适合你数据/网络的优化器.import torchimport torch.uti转载 2021-04-30 20:33:39 · 385 阅读 · 1 评论 -
RNN循环神经网路(数字分类)
RNN循环神经网路(数字分类)import torchfrom torch import nnfrom torch.autograd import Variableimport torchvision.datasets as dsetsimport torchvision.transforms as transformsimport matplotlib.pyplot as pltimport torch.utils.data as Data# 定义超参数 hyper parameters原创 2021-05-02 18:09:21 · 152 阅读 · 0 评论 -
PyTorch实现简单Classification分类
Classificationimport torchfrom torch.autograd import Variableimport torch.nn.functional as Fimport matplotlib.pyplot as plt# 建立数据集# 假数据n_data = torch.ones(100, 2) # 数据的基本形态x0 = torch.normal(2 * n_data, 1) # 类型0 x data (tensor), shape=(100, 2)y0转载 2021-04-23 22:05:00 · 612 阅读 · 0 评论 -
RNN (Recurrent Neural Network)
RNN (Recurrent Neural Network)RNN 的用途现在请你看着这个名字. 不出意外, 你应该可以脱口而出. 因为你很可能就用了他们家的一款产品 . 那么现在, 请抛开这个产品, 只想着斯蒂芬乔布斯这个名字 , 请你再把他逆序念出来. 斯布乔(*#&, 有点难吧. 这就说明, 对于预测, 顺序排列是多么重要. 我们可以预测下一个按照一定顺序排列的字, 但是打乱顺序, 我们就没办法分析自己到底在说什么了.序列数据我们想象现在有一组序列数据 data 0,1,2,3. 在当转载 2021-05-01 11:32:27 · 97 阅读 · 0 评论 -
对抗网络 GAN (Generative Adversarial Nets)
对抗网络 GAN (Generative Adversarial Nets)常见神经网络形式神经网络分很多种, 有普通的前向传播神经网络 , 有分析图片的 CNN 卷积神经网络 , 有分析序列化数据, 比如语音的 RNN 循环神经网络 , 这些神经网络都是用来输入数据, 得到想要的结果, 我们看中的是这些神经网络能很好的将数据与结果通过某种关系联系起来.生成网络但是还有另外一种形式的神经网络, 他不是用来把数据对应上结果的, 而是用来”凭空”捏造结果, 这就是我们要说的生成网络啦. GAN 就是其中转载 2021-05-09 17:02:57 · 181 阅读 · 0 评论 -
CNN卷积神经网络(数字分类)
CNN卷积神经网络——手写数字识别import torchimport torch.nn as nnfrom torch.autograd import Variableimport torch.utils.data as Dataimport torchvisionimport matplotlib.pyplot as plttorch.manual_seed(1)# Hyper parametersEPOCH = 1BATCH_SIZE = 50LR = 0.001DOWNL原创 2021-05-01 11:13:18 · 488 阅读 · 0 评论 -
保存和读取神经网络的两种方法
保存和读取神经网络的两种方法直接保存整个训练结果torch.save(net, 'net.pkl') # 保存整个网络def restore_net(): net2 = torch.load('net.pkl') prediction = net2(x) plt.subplot(132) plt.title('Net2') plt.scatter(x.data.numpy(), y.data.numpy()) plt.plot(x.data.numpy转载 2021-04-30 19:44:16 · 966 阅读 · 1 评论 -
回归(Regression )
回归(Regression )模型定义Regression 就是找到一个函数 functionfunction ,通过输入特征 x,输出一个数值 Scalar。模型应用股市预测(Stock market forecast)输入:过去10年股票的变动、新闻咨询、公司并购咨询等输出:预测股市明天的平均值自动驾驶(Self-driving Car)输入:无人车上的各个sensor的数据,例如路况、测出的车距等输出:方向盘的角度商品推荐(Recommendation)输入:商品原创 2021-10-13 22:19:10 · 581 阅读 · 0 评论 -
CNN(Convolutional Neural Network)
CNN的基本结构图中是一个图形识别的CNN模型。可以看出最左边的船的图像就是我们的输入层,计算机理解为输入若干个矩阵,这点和DNN基本相同。接着是卷积层(Convolution Layer),这个是CNN特有的。卷积层的激活函数使用的是ReLU。我们在DNN中介绍过ReLU的激活函数,它其实很简单,就是ReLU(x)=max(0,x)。在卷积层后面是池化层(Pooling layer),这个也是CNN特有的,我们后面也会专门来讲。需要注意的是,池化层没有激活函数。卷积层+池化层的组合可以在隐藏层出现原创 2021-10-23 20:43:17 · 18818 阅读 · 0 评论 -
DQN(Deep Q Network )强化学习
DQN(Deep Q Network )强化学习强化学习与神经网络之前我们所谈论到的强化学习方法都是比较传统的方式, 而如今, 随着机器学习在日常生活中的各种应用, 各种机器学习方法也在融汇, 合并, 升级. 而我们今天所要探讨的强化学习则是这么一种融合了神经网络和 Q learning 的方法, 名字叫做 Deep Q Network. 这种新型结构是为什么被提出来呢? 原来, 传统的表格形式的强化学习有这样一个瓶颈.神经网络的作用我们使用表格来存储每一个状态 state, 和在这个 state转载 2021-05-08 21:52:05 · 233 阅读 · 0 评论 -
误差与梯度下降
误差误差 = 方差 + 偏差2 + 噪音 组成,一般来说,随着模型复杂度的增加,方差会逐渐增大,偏差会逐渐减小偏差(Bias)偏差(bias):偏差衡量了模型的预测值与实际值之间的偏离关系。通常在深度学习中,我们每一次训练迭代出来的新模型,都会拿训练数据进行预测,偏差就反应在预测值与实际值匹配度上,比如通常在keras运行中看到的准确度为96%,则说明是低偏差;反之,如果准确度只有70%,则说明是高偏差。方差(Variance)方差(variance):方差描述的是训练数据在不同迭代阶段的训练模原创 2021-10-15 22:30:16 · 2155 阅读 · 0 评论 -
快速搭建神经网络
快速搭建神经网络原始搭建方法import matplotlib.pyplot as pltimport torchimport torch.nn.functional as F# 假数据# torch.normal(means, std, out=None)返回一个张量,包含从给定参数means,std的离散正态分布中抽取随机数。 均值means是一个张量,# 包含每个输出元素相关的正态分布的均值。 std是一个张量,包含每个输出元素相关的正态分布的标准差。 均值和标准差的形状不须匹配,但每转载 2021-04-30 19:42:22 · 172 阅读 · 1 评论 -
DQN强化学习实践
DQN强化学习实践import torchimport torch.nn as nnimport torch.nn.functional as Fimport numpy as npimport gym# 定义超参数BATCH_SIZE = 32LR = 0.01EPSILON = 0.9 # 最优选择动作百分比GAMMA = 0.9 # 奖励递减参数TARGET_REPLACE_ITER = 100 # Q 现实网络的更新频率MEMORY_CAPACITY = 2000原创 2021-05-09 16:56:58 · 141 阅读 · 0 评论 -
RNN循环神经网络(回归)
RNN循环神经网络(回归)import torchfrom torch import nnimport numpy as npimport matplotlib.pyplot as plt# torch.manual_seed(1) # reproducible# Hyper ParametersTIME_STEP = 10 # rnn time stepINPUT_SIZE = 1 # rnn input sizeLR = 0.02 # learning rate#转载 2021-05-07 21:06:05 · 353 阅读 · 0 评论 -
回归(Regression)演示
import numpy as npimport matplotlib.pyplot as pltfrom pylab import mpl# 现在假设有10个x_data和y_data,x和y之间的关系是y_data=b+w*x_data。b,w都是参数,是需要学习出来的。现在我们来练习用梯度下降找到b和w。# matplotlib没有中文字体,动态解决plt.rcParams['font.sans-serif'] = ['Simhei'] # 显示中文mpl.rcParams['axes原创 2021-10-14 15:37:49 · 114 阅读 · 0 评论 -
深度学习技巧
深度学习技巧深度神经网络(DNN)损失函数和激励函数的选择MSE 均方差损失函数+Sigmoid 激活函数Sigmoid激活函数的表达式为:Sigmoid激活函数的图像为:输出层δL的梯度情况:图上可以看出,对于Sigmoid,当z的取值越来越大后,函数曲线变得越来越平缓,意味着此时的导数σ′(z)σ′(z)也越来越小。同样的,当z的取值越来越小时,也有这个问题。仅仅在z取值为0附近时,导数σ′(z)的取值较大。Sigmoid的这个曲线意味着在大多数时候,我们的梯度变化值很小,导致我们的 W,b原创 2021-10-20 21:32:24 · 215 阅读 · 0 评论 -
LSTM (Long Short-Term Memory)长短期记忆循环神经网络
LSTM (Long Short-Term Memory)长短期记忆循环神经网络RNN 的弊端RNN是在有顺序的数据上进行学习的. 为了记住这些数据, RNN 会像人一样产生对先前发生事件的记忆. 不过一般形式的 RNN 就像一个老爷爷, 有时候比较健忘. 为什么会这样呢?想像现在有这样一个 RNN, 他的输入值是一句话: ‘我今天要做红烧排骨, 首先要准备排骨, 然后…., 最后美味的一道菜就出锅了’, shua ~ 说着说着就流口水了. 现在请 RNN 来分析, 我今天做的到底是什么菜呢. RNN转载 2021-05-01 11:39:24 · 716 阅读 · 0 评论 -
AutoEncoder(自编码/非监督学习)数字分类
AutoEncoder(自编码/非监督学习)数字分类import torchimport torch.nn as nnimport torch.utils.data as Dataimport torchvisionimport matplotlib.pyplot as pltimport numpy as npfrom mpl_toolkits.mplot3d import Axes3Dfrom matplotlib import cm# 超参数EPOCH = 10BATCH_SI原创 2021-05-08 21:43:05 · 492 阅读 · 0 评论 -
Pytorch训练是出现pytorch RuntimeError: expected scalar type Double but found Float
错误如下RuntimeError: expected scalar type Double but found Float原因: tensor的数据类型dtype不正确解决: 将数据类型转为float32tensor = tensor.to(torch.float32)原创 2022-01-22 22:17:34 · 2573 阅读 · 0 评论 -
利用Pytorch与Sklearn使用LSTM时序预测
from sklearn.model_selection import train_test_splitimport pandas as pdimport numpy as npfrom sklearn.preprocessing import MinMaxScalerimport matplotlib.pyplot as pltimport torchfrom torch import nn, optimfrom torch.autograd import Variablefrom tor原创 2022-01-23 13:57:28 · 2267 阅读 · 0 评论