神经网络
文章平均质量分 52
.
海洋 之心
阿里云社区专家博主,图神经网络-大数据-推荐系统研究者,专注于计算机领域前沿技术的分享等人工智能算法研究工作
展开
-
使用LSTM预测结果为一条直线原因总结
使用LSTM预测结果为一条直线原因总结原创 2023-01-17 21:19:35 · 6152 阅读 · 0 评论 -
自然语言处理Transformer模型最详细讲解(图解版)
近几年NLP较为流行的两大模型分别为Transformer和Bert,其中Transformer由论文《Attention is All You Need》提出。该模型由谷歌团队开发,Transformer是不同与传统RNN和CNN两大主流结构,它的内部是采用自注意力机制模块。原创 2022-10-16 11:26:46 · 34844 阅读 · 11 评论 -
UMAP:强大的可视化&异常检测工具
数据降维最为重要的是降低数据的维度的同时尽可能保有大量的原始信息,而其中最为大家熟知的是PCA和tSNE,但是这二者都存在一些问题,PCA的速度相对很快,但代价是数据缩减后会丢很多底层的结构信息; tSNE可以保留数据的底层结构,但速度非常慢;UMAP是2018年被提出的降维和可视化算法,它使用Uniform流形近似和投影(UMAP),既可以获得PCA的速度优势,同时还可以保留尽可能多的数据信息,而且其可视化效果也非常美观,如下:UMAP 在其当前的化身中取得了一些重大胜利。Umap介绍统一..原创 2022-01-15 09:42:34 · 3006 阅读 · 2 评论 -
【自然语言NLP】TensorFlow使用LSTM实现文本匹配任务
在NLP自然语言处理领域,有时我们需要计算不同文本之间的相似度,将不同文本进行编码,然后处理成Embedding定长表示向量,然后使用LSTM进行输出文本表示,定义多个多输入源数据进行计算。句子1:我不爱吃剁椒鱼头,但是我爱吃鱼头句子2:我爱吃土豆,但是不爱吃地瓜同样使用LSTM网络,把每个句子抽象成一个向量表示,通过计算这两个向量之间的相似度,就可以快速完成文本相似度计算任务。在实际场景里,我们也通常使用LSTM网络的最后一步hidden结果,将一个句子抽象成一个向量,然后通过向量点积,或者co原创 2022-01-14 19:32:53 · 831 阅读 · 0 评论 -
【自然语言NLP】TensorFlow使用LSTM实现情感分析任务
自然语言情感分析众所周知,人类自然语言中包含了丰富的情感色彩:表达人的情绪(如悲伤、快乐)、表达人的心情(如倦怠、忧郁)、表达人的喜好(如喜欢、讨厌)。利用机器自动分析这些情感倾向,不但有助于帮助企业了解消费者对其产品的感受,为产品改进提供依据;同时还有助于企业分析商业伙伴们的态度,一遍更好地进行商业决策。我们可以将情感分析任务定义为一个分类问题,即指定一个文本输入,机器通过对文本进行分析、处理、归纳和推理后自动输出结论。常见情感分析任务正向:表示正面积极的情感,如高兴,幸福,惊喜,期待等负原创 2022-01-14 18:43:42 · 2036 阅读 · 0 评论 -
TensorFlow中Embedding和One-Hot的区别
在推荐系统或者一些大型文本分类数据任务上,对于一些数据的维度非常高,而且因为稀疏型(分类)特征不能直接喂给模型,我们需要将其映射成稠密连续特征(数值型)。原创 2021-12-30 15:54:24 · 763 阅读 · 0 评论 -
VGG为什么叫做VGG,VGG的由来
VGG网络是Oxford的Visual Geometry Group的研究组提出的,这也就是VGG的由来,并不是和他的网络架构相关,而是提出它的研究组的英文简写。原创 2021-12-28 10:54:02 · 1926 阅读 · 0 评论 -
TensorFlow训练网络两种方式
TensorFlow训练网络有两种方式,一种是基于tensor(array),另外一种是迭代器两种方式区别是:第一种是要加载全部数据形成一个tensor,然后调用model.fit()然后指定参数batch_size进行将所有数据进行分批训练第二种是自己先将数据分批形成一个迭代器,然后遍历这个迭代器,分别训练每个批次的数据方式一:通过迭代器IMAGE_SIZE = 1000# step1:加载数据集(train_images, train_labels), (val_images, val_原创 2021-12-27 19:47:07 · 1879 阅读 · 2 评论 -
TensorFlow将Tensor或者numpy数据变成迭代器
(train_images, train_labels), (val_images, val_labels) = tf.keras.datasets.mnist.load_data()train_loader = tf.data.Dataset.from_tensor_slices((train_images, train_labels)).batch(32)val_loader = tf.data.Dataset.from_tensor_slices((val_images, val_labels)原创 2021-12-27 19:41:53 · 751 阅读 · 0 评论 -
TensorFlow加载本地文件夹图像形成迭代器
# flower数据集路径PATH = '../../Data/flower'# 训练集路径,在总路径后拼接traintrain_dir = os.path.join(PATH, 'train')# 验证集路径,在总路径后拼接valvalidation_dir = os.path.join(PATH, 'val')# 每个批次数据大小,这里将BATCH_SIZE调大为了一次读取,在训练时在分batch,或者这里小一点# 形成一个迭代器,然后按照遍历的方式进行训练BATCH_SIZE = 3原创 2021-12-27 19:35:47 · 403 阅读 · 0 评论 -
TensorFlow加载cifar10数据集
加载cifar10数据集cifar10_dir = 'C:/Users/1/.keras/datasets/cifar-10-batches-py'(train_images, train_labels), (test_images, test_labels) = load_data(cifar10_dir)注意:在官网下好cifar10数据集后将其解压成下面形式load_local_cifar10.pyfrom __future__ import absolute_importfrom _原创 2021-12-27 19:29:24 · 1283 阅读 · 1 评论 -
TensorFlow2.0+新版本搭建网络三种方式
由于TensofFlow不同版本之间API以及库函数变化较大,所以搭建网络方式有很多种,这里总结了常见的三种方式,适合入门级搭建网络,分别是定义类继承Model、函数式API、顺序模型,对于常见简单的网络三种方式都可以,但是对于复杂网络,例如递归式循环、多塔状网络可能函数式API更加适合,另外两种可能就不太适用,对于顺序堆叠执行的网络,三者都差不多。方式一:继承keras.Modelclass LeNet5(tf.keras.Model): def __init__(self):原创 2021-12-27 19:25:17 · 639 阅读 · 0 评论 -
python 用pip安装tensorflow(超简单的一句话)
如果你已经装好了pip,那就直接否则pip install --upgrade pippip install tensorflow==2.7.0 # CPUpip install tensorflow-gpu==2.7.0 # GPU之后就可以完美使用!!!原创 2021-12-08 10:44:37 · 9204 阅读 · 0 评论 -
python 用pip安装mediapipe(超简单的一句话)
如果你已经装好了pip,那就直接pip install mediapipe之后就可以完美使用!!!原创 2021-12-08 10:40:15 · 6063 阅读 · 5 评论 -
【深度学习系列】(二)--An overview of gradient descent optimization algorithms
文章目录一、摘要二、介绍三、梯度下降变体3.1 批量梯度下降(Batch gradient descent)3.2 随机梯度下降(Stochastic gradient descent)3.3 小批量梯度下降(Mini-batch gradient descent)四、面临的困难五、梯度下降优化算法5.1 动量(Momentum)5.2 Nesterov accelerated gradient5.3 Adagrad5.4 Adadelta5.5 RMSprop5.6 Adam5.7 算法的可视化5.8 使原创 2021-11-26 22:06:28 · 665 阅读 · 0 评论 -
【深度学习论文解读系列】(一)--Dropout原理剖析
文章目录Dropout: A Simple Way to Prevent Neural Networks from overfitting一、摘要二、介绍三、动机四、模型描述五、学习Dropout网络ReferencesDropout: A Simple Way to Prevent Neural Networks from overfitting一、摘要具有大量参数的深度神经网络是非常强大的机器学习系统。然而,在这样的网络中,过度拟合是一个严重的问题。大型网络的使用速度也很慢,因此很难在测试时通过组原创 2021-11-24 12:01:14 · 2489 阅读 · 0 评论 -
【深度学习】Dropout原理以及代码实现
Drouout起源随着深度学习的发展,各种网络结构层出不穷,导致网络越来越深,数据的容纳量越来越大,模型的参数也越来越多,这样就会导致神经网络很容易过拟合,过拟合的模型几乎是不能用于实践中的,因为拟合的数据与测试数据不一致,导致模型的泛化性能较低。由于这个问题,现在有很多解决办法,比如使用集成模型,同时训练多个模型,最终让几个模型进行加权,这样能够解决过拟合是因为使用了不同的模型,每个模型拟合到的数据特征不同,最终由于互补,能够使模型的泛化性能更强,随机森林就是很经典的ensemble模型,分别单独训练原创 2021-11-24 11:59:53 · 3727 阅读 · 0 评论 -
Linux安装cuda10.1,cudnn7.6.4 (深度学习) MindSporeGPU计算框架
CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。当我们在进行深度学习任务时,我们有时需要使用GPU版本的框架,比如tensorflow-gpu或者mindspore-gpu版本就需要安装CUDA和CUDNN进行GPU加速支持1.下载cuda10.1CUDA Toolkit 10.1官方下载地址[外链图片转存失败,源站可能有防盗链机制,建议将原创 2021-08-10 16:26:30 · 2203 阅读 · 0 评论 -
L2正则项是为了减少模型过拟合
L2正则项的影响加入L2正则项是为了减少模型过拟合L=loss+lambda*w^2/2那么为什么L2可以防止过拟合呢?先从公式入手,我们的目标就是为了让损失函数最小,也就是让最初的loss和加入的正则项都要达到最小我们假想原来的loss有个最优点,添加的正则项是正的,而且它的空间表示应该是原点周围的正的空间图形防止过拟合是要将参数的变化范围减小,将参数变小这里为什么参数范围小会防止过拟合呢?假想平面存在一系列散点,我们要拟合一条曲线去符合它,只要我们的参数w无任何限制,我们肯定能原创 2021-05-30 13:53:17 · 384 阅读 · 0 评论 -
lightGBM Python API参考以及各参数意义
模型参数参数名参数描述可选值boosting_type模型提升方式‘gbdt’、‘dart’、‘goss’、‘rf’num_leaves每个基学习器的最大叶子默认31max_depth基学习器树的最大深度默认-1,没有限制learning_rateboosting学习率默认0.1n_estimators基学习器的数量默认10max_bin特征值的分桶数默认255subsample_for_bin用于分箱的样本数默认500原创 2021-05-26 17:12:14 · 756 阅读 · 0 评论 -
XGBoost Python API参考以及各参数意义
常规参数参数参数描述可选值booster使用哪种增压器,可以是gbtree, gblinar或dart。Gbtree和dart采用基于树的模型,而gblinear采用线性函数‘gbtree’、‘gblinar’、‘dart’,默认gbtreesilent是否打印运行信息0代表打印,1,默认0nthread用于运行xgboost的并行线程数默认最大数num_pbuffer预测缓冲区的大小,通常设置为训练实例的数量。缓冲器用于保存最后一个助推步的预测结果原创 2021-05-26 17:10:47 · 421 阅读 · 0 评论 -
Dropout丢弃法如何实现及其原理
Dropout丢弃法是为了防止模型过拟合,它会每个批次随机的将部分数据置为0,在网络传递的过程不起任何作用,经过多个批次的dropout的作用形成最终的模型参数失活一定的权重就不会造成过拟合,缺少部分权重的影响导致模型的容量变小,进而本次学习的任务不会过多,不会学习到个别的噪音我们假设有一个向量为X=[x1,x2,x3,x4,x5]丢弃法虽然会将一部分数据置为0,但是它不会改变数据的期望我们假设丢弃的概率为p现在的期望就变成了E(x1)=0*p+(1-p)*x1/(1-p)=x1可以看到并.原创 2021-05-25 19:55:44 · 1010 阅读 · 1 评论 -
权重衰减的简单示例代码,采用L2正则项
创造数据x的数据维度为(200,100)w的数据维度为(100,1)利用data_iter获得批次数据import torchfrom torch.utils import dataimport torch.nn as nnn_examples=200n_features=100true_w=torch.randn(100,1)true_b=torch.tensor(0.54)x_=torch.randn(200,100)y_=x_@true_w+true_by_+=to原创 2021-05-25 11:55:21 · 259 阅读 · 0 评论 -
params argument given to the optimizer should be an iterable
net=nn.Linear(100,1)optimizer_w=torch.optim.SGD(net.weight,lr=0.03,weight_decay=wd)>出现问题的原因是SGD函数所需的param参数应该是迭代器或者是张量对应的字典>但是此时net.weight就是个普通张量>解决办法:>optimizer_w=torch.optim.SGD([net.weight],lr=0.03,weight_decay=wd)>将net.weight变成列.原创 2021-05-25 11:33:44 · 3888 阅读 · 0 评论 -
PyTorch reshape和view的区别
a1=torch.arange(12)b1=a1.reshape(2,6)c1=a1.view(3,4)print(a1.storage().data_ptr())print(b1.storage().data_ptr())print(c1.storage().data_ptr())print(id(a1))print(id(b1))print(id(c1))tensor中会有两个区,分别是数据存储区和头部区tensor如果定义一个a后,随后将a的某一行赋值给b那么a和b就会共享数原创 2021-05-25 10:29:31 · 592 阅读 · 0 评论 -
PyTorch函数中文文档详细解释及示例(持续更新)
1、torch.rand()torch.rand(*size,dtype=None,layout=torch.dtrided,device=None,requires_grad=False)返回符合0-1均匀分布的随机张量size:定义指定张量的形状,可以是一个标量或者是元组、列表等dtype:返回张量的所需数据类型。默认值:如果为None,则使用全局默认值layout:返回张量的所需布局。默认值:如果为None,则默认为输入的布局device:返回张量的所需设备requires_gra原创 2021-05-25 10:28:30 · 1692 阅读 · 1 评论 -
【目录】【ResNet残差网络】—— Pytorch实现
ResNet残差网络Pytorch实现大学生一枚,最近在学习神经网络,写这篇文章只是记录自己的学习历程,本文参考了Github上fengdu78老师的文章进行学习源码下载地址数据下载地址百度云名称地址ResNet残差网络Pytorch实现——BasicBlock残差块传送门ResNet残差网络Pytorch实现——Bottleneck残差块传送门ResNet残差网络Pytorch实现——结合各个残差块传送门ResNet残差网络原创 2021-05-10 11:11:04 · 630 阅读 · 1 评论 -
ResNet残差网络Pytorch实现——cifar10数据集训练
ResNet残差网络Pytorch实现——cifar10数据集训练上一篇:【课程1 - 第二周作业】 ✌✌✌✌ 【目录】 ✌✌✌✌ 下一篇:【课程1 - 第三周作业】大学生一枚,最近在学习神经网络,写这篇文章只是记录自己的学习历程,本文参考了Github上fengdu78老师的文章进行学习✌ 使用ResNet进行对cifar10数据集进行训练import torchvisionimport torchfrom torchvision import transformsimport os原创 2021-05-10 10:54:31 · 859 阅读 · 1 评论 -
ResNet残差网络Pytorch实现——对花的种类进行批量数据预测
ResNet残差网络Pytorch实现——对花的种类进行批量数据预测上一篇:【课程1 - 第二周作业】 ✌✌✌✌ 【目录】 ✌✌✌✌ 下一篇:【课程1 - 第三周作业】大学生一枚,最近在学习神经网络,写这篇文章只是记录自己的学习历程,本文参考了Github上fengdu78老师的文章进行学习✌ 使用ResNet进行对花的种类进行批量数据预测import osimport jsonimport torchfrom torchvision import transformsfrom P原创 2021-05-10 10:51:21 · 1865 阅读 · 3 评论 -
ResNet残差网络Pytorch实现——对花的种类进行单数据预测
ResNet残差网络Pytorch实现——对花的种类进行单数据预测上一篇:【课程1 - 第二周作业】 ✌✌✌✌ 【目录】 ✌✌✌✌ 下一篇:【课程1 - 第三周作业】大学生一枚,最近在学习神经网络,写这篇文章只是记录自己的学习历程,本文参考了Github上fengdu78老师的文章进行学习✌ 使用ResNet进行对花的种类进行单数据预测import osimport jsonimport torchfrom torchvision import transformsfrom PIL原创 2021-05-10 10:49:57 · 960 阅读 · 1 评论 -
ResNet残差网络Pytorch实现——对花的种类进行训练
ResNet残差网络Pytorch实现——对花的种类进行训练上一篇:【课程1 - 第二周作业】 ✌✌✌✌ 【目录】 ✌✌✌✌ 下一篇:【课程1 - 第三周作业】大学生一枚,最近在学习神经网络,写这篇文章只是记录自己的学习历程,本文参考了Github上fengdu78老师的文章进行学习✌ 使用ResNet进行对花的种类进行训练import osimport jsonimport torchimport torch.nn as nnimport torch.optim as optim原创 2021-05-10 10:48:14 · 1373 阅读 · 7 评论 -
ResNet残差网络Pytorch实现——结合各个残差块
ResNet残差网络Pytorch实现上一篇:【课程1 - 第二周作业】 ✌✌✌✌ 【目录】 ✌✌✌✌ 下一篇:【课程1 - 第三周作业】大学生一枚,最近在学习神经网络,写这篇文章只是记录自己的学习历程,本文参考了Github上fengdu78老师的文章进行学习✌ ResNet# 总的残差网络模型class ResNet(nn.Module): def __init__(self,block,block_num,num_classes=1000,include_top=True):原创 2021-05-10 10:44:52 · 1243 阅读 · 1 评论 -
ResNet残差网络Pytorch实现——Bottleneck残差块
ResNet残差网络Pytorch实现——Bottleneck残差块上一篇:【课程1 - 第二周作业】 ✌✌✌✌ 【目录】 ✌✌✌✌ 下一篇:【课程1 - 第三周作业】大学生一枚,最近在学习神经网络,写这篇文章只是记录自己的学习历程,本文参考了Github上fengdu78老师的文章进行学习✌ Bottleneck# 50、101、152层残差块,三个卷积层,1*1,3*3,1*1class Bottleneck(nn.Module): # 这里对应是4,对应每层中的64,64,25原创 2021-05-10 10:42:08 · 2596 阅读 · 0 评论 -
ResNet残差网络Pytorch实现——BasicBlock残差块
ResNet残差网络Pytorch实现——BasicBlock残差块上一篇:【课程1 - 第二周作业】 ✌✌✌✌ 【目录】 ✌✌✌✌ 下一篇:【课程1 - 第三周作业】大学生一枚,最近在学习神经网络,写这篇文章只是记录自己的学习历程,本文参考了Github上fengdu78老师的文章进行学习✌ BasicBlockclass BasicBlock(nn.Module): # 一层中不同卷积层,卷积核的倍数 # 34层网络是64,64,50层网络是64,64,256 ex原创 2021-05-10 10:40:28 · 3669 阅读 · 1 评论