
卷积神经网络与视觉识别
文章平均质量分 89
CS231n作业的记录
Esaka7
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CS231n-assignment3-Self-Supervised Learning
什么是自我监督学习?现代机器学习需要大量的标记数据。但通常情况下,获取大量人类标记数据是具有挑战性和/昂贵的。有没有一种方法,我们可以让机器自动学习一个模型,可以生成良好的视觉表示,而无需标记数据集?是的,自我监督学习!自我监督学习(SSL)允许模型使用给定数据集中的数据自动学习“好的”表现空间,而不需要标签。具体来说,如果我们的数据集是一堆图像,那么自我监督学习允许模型学习并生成“好的”图像表现向量。SSL方法之所以如此流行,是因为学习后的模型在其他数据集上仍然表现良好,例如没有在其上训练过的新数据原创 2021-08-04 19:55:15 · 1603 阅读 · 2 评论 -
CS231n-assignment3-Generative Adversarial Networks (GANs)
什么是GAN?2014年,Goodfellow等人提出了一种生成模型训练方法,简称生成对抗网络(generative Adversarial Networks,简称GANs)。在GAN中,我们构建两种不同的神经网络。我们的第一个网络是传统的分类网络,称为鉴别器。我们将训练鉴别器来拍摄图像,并将其分类为真实(属于训练集)或虚假(不存在于训练集)。我们的另一个网络称为生成器,它将随机噪声作为输入,并使用神经网络对其进行变换以生成图像。生成器的目的是让鉴别器误以为它产生的图像是真实的。我们可以将生成器(???原创 2021-08-03 23:34:28 · 1748 阅读 · 0 评论 -
CS231n-assignment3-Transformer_Captioning
之前已经实现了一个vanilla RNN和用于生成图像标题的任务。在本笔记本中,您将实现变压器解码器的关键部分,以完成相同的任务。跟之前一样ln[1]:# Setup cell.import time, os, jsonimport numpy as npimport matplotlib.pyplot as pltfrom cs231n.gradient_check import eval_numerical_gradient, eval_numerical_gradient_array原创 2021-08-02 16:33:56 · 2589 阅读 · 4 评论 -
CS231n-assignment3-Network_Visualization(Pytorch)
在本笔记本中,我们将探索使用图像梯度生成新图像。这里我们要做一些稍微不同的事情。我们将从一个卷积神经网络模型开始,该模型已经经过了对ImageNet数据集进行图像分类的预训练。我们将使用这个模型来定义一个损失函数,该函数量化我们当前对图像的不满意,然后使用反向传播来计算这个损失相对于图像像素的梯度。然后我们将保持模型不变,并对图像进行梯度下降,以合成新的图像,使损失最小化。在本笔记本中,我们将探索三种图像生成技术:显著性映射:显著性映射是一种快速的方法,可以告诉哪些部分的图像影响了网络的分类决策。欺原创 2021-07-31 15:25:45 · 1360 阅读 · 0 评论 -
CS231n-assignment3-LSTM
在前面的练习中,您实现了一个普通的RNN并将其应用于图像标题。在本笔记本中,您将实现LSTM更新规则并将其用于图像字幕。ln[1]:# Setup cell.import time, os, jsonimport numpy as npimport matplotlib.pyplot as pltfrom cs231n.gradient_check import eval_numerical_gradient, eval_numerical_gradient_arrayfrom cs231n原创 2021-07-29 15:20:35 · 647 阅读 · 0 评论 -
CS231n-assignment3-Image Captioning with RNNs
在这个练习中,您将实现一个vanilla递归神经网络,并使用它们来训练一个模型,可以为图像生成新的标题。ln[1]:# As usual, a bit of setupimport time, os, jsonimport numpy as npimport matplotlib.pyplot as pltfrom cs231n.gradient_check import eval_numerical_gradient, eval_numerical_gradient_arrayfrom c原创 2021-07-27 16:33:38 · 1124 阅读 · 0 评论 -
CS231n-assignment2-PyTorch
介绍PyTorch你在这个作业中写了很多代码来提供一整套的神经网络功能。Dropout, Batch Normalization,和2D卷积是计算机视觉中深度学习的主要工具。您还努力使代码高效和向量化。但是,对于本作业的最后一部分,我们将离开您漂亮的代码库,转而迁移到两个流行的深度学习框架之一:PyTorch(或者TensorFlow)为什么我们要使用深度学习框架?我们的代码现在可以在gpu上运行了!这将使我们的模型训练得更快。当使用像PyTorch或TensorFlow这样的框架时,你可以利用GP原创 2021-07-25 21:46:08 · 2132 阅读 · 0 评论 -
CS231n-assignment2-Convolutional Networks
卷积网络到目前为止,我们已经使用了深度全连接网络,使用它们探索不同的优化策略和网络架构。全连接网络是一个很好的实验平台,因为它们的计算效率非常高,但实际上所有最先进的结果都使用卷积网络。首先,您将实现在卷积网络中使用的几种层类型。然后,您将使用这些层来训练CIFAR-10数据集上的卷积网络。ln[1]:# As usual, a bit of setupimport numpy as npimport matplotlib.pyplot as pltfrom cs231n.classifier原创 2021-07-22 16:09:43 · 1180 阅读 · 1 评论 -
CS231n-assignment2-Dropout
Dropout是一种正则化神经网络的技术,它通过在前向传递过程中将一些特征随机设置为零。在本练习中,您将实现一个dropout层,并修改完全连接的网络以选择使用dropoutIn[1]:# As usual, a bit of setupfrom __future__ import print_functionimport timeimport numpy as npimport matplotlib.pyplot as pltfrom cs231n.classifiers.fc_net im原创 2021-07-20 12:37:41 · 820 阅读 · 0 评论 -
CS231n-assignment2-BatchNormalization
批正常化使深度网络更容易训练的一种方法是使用更复杂的优化程序,如SGD+momentum、RMSProp或Adam。另一个策略是改变网络的架构,使其更容易训练这个想法相对简单。当输入数据由零均值和单位方差的不相关特征组成时,机器学习方法往往工作得更好。在训练神经网络时,我们可以在将数据输入网络之前对其进行预处理,这将确保网络的第一层看到符合良好分布的数据。然而,即使我们对输入数据进行预处理,网络更深层次的激活也可能不再是去相关的,也不再具有零平均值或单位方差,因为它们是来自网络前面层的输出。更糟糕的是,原创 2021-07-19 16:24:39 · 1195 阅读 · 0 评论 -
CS231n-assignment2-Fully-connected Neural Network
全神经网络在前面的作业中,您在CIFAR-10上实现了一个完全连接的两层神经网络。实现是简单的,但不是非常模块化,因为损耗和梯度计算在一个单一的单片函数。对于一个简单的两层网络来说,这是可以管理的,但是当我们转向更大的模型时,这将变得不切实际。理想情况下,我们希望使用更模块化的设计来构建网络,这样我们就可以孤立地实现不同的层类型,然后将它们组合到具有不同架构的模型中。在本练习中,我们将使用更模块化的方法实现全连接网络。对于每个层,我们将实现一个前向函数和一个后向函数。forward函数将接收输入、权重和原创 2021-07-18 18:28:40 · 1510 阅读 · 1 评论 -
CS231n-assignment1-features
这一次的作业是对SVM和2-layer-net的对比我们可以通过在输入图像的像素上训练线性分类器来实现对图像分类任务的合理性能。在这个练习中,我们将展示我们训练图像的特征而不是像素所带来的表现。前几个操作跟之前的类似In[1]:import randomimport numpy as npfrom cs231n.data_utils import load_CIFAR10import matplotlib.pyplot as pltfrom __future__ import print_原创 2021-07-15 15:37:10 · 1108 阅读 · 1 评论 -
CS231n-assignment1-two-Layer Neural Network
In[1]:import numpy as npimport matplotlib.pyplot as pltfrom cs231n.classifiers.neural_net import TwoLayerNetfrom __future__ import print_function#%matplotlib inlineplt.rcParams['figure.figsize'] = (10.0, 8.0) # set default size of plotsplt.rcPara原创 2021-07-13 13:29:20 · 797 阅读 · 0 评论 -
CS231n-assignment1-SVM和SoftMax
In[1]:import randomimport numpy as npfrom cs231n.data_utils import load_CIFAR10import matplotlib.pyplot as pltfrom __future__ import print_function#%matplotlib inline # %matplotlib inline 可以在Ipython编译器里直接使用,功能是可以内嵌绘图,并且可以省略掉plt.show()这一步。# figsize设原创 2021-07-11 22:21:06 · 1049 阅读 · 6 评论 -
CS231n-assignment1-KNN
In[1]:import randomimport numpy as npfrom cs231n.data_utils import load_CIFAR10import matplotlib.pyplot as pltfrom __future__ import print_function%matplotlib inline # %matplotlib inline 可以在Ipython编译器里直接使用,功能是可以内嵌绘图,并且可以省略掉plt.show()这一步。# figsiz.原创 2021-07-10 00:53:49 · 1069 阅读 · 3 评论