CS231n-assignment1-features

这一次的作业是对SVM和2-layer-net的对比

我们可以通过在输入图像的像素上训练线性分类器来实现对图像分类任务的合理性能。在这个练习中,我们将展示我们训练图像的特征而不是像素所带来的表现。

前几个操作跟之前的类似
In[1]:

import random
import numpy as np
from cs231n.data_utils import load_CIFAR10
import matplotlib.pyplot as plt

from __future__ import print_function

#%matplotlib inline
plt.rcParams['figure.figsize'] = (10.0, 8.0) # set default size of plots
plt.rcParams['image.interpolation'] = 'nearest'
plt.rcParams['image.cmap'] = 'gray'

%load_ext autoreload
%autoreload 2

载入数据
In[2]:

from cs231n.features import color_histogram_hsv, hog_feature

def get_CIFAR10_data(num_training=49000, num_validation=1000, num_test=1000):
    cifar10_dir = 'cs231n/datasets/cifar-10-batches-py'

    X_train, y_train, X_test, y_test = load_CIFAR10(cifar10_dir)
    
    mask = list(range(num_training, num_training + num_validation))
    X_val = X_train[mask]
    y_val = y_train[mask]
    mask = list(range(num_training))
    X_train = X_train[mask]
    y_train = y_train[mask]
    mask = list(range(num_test))
    X_test = X_test[mask]
    y_test = y_test[mask]
    
    return X_train, y_train, X_val, y_val, X_test, y_test

try:
   del X_train, y_train
   del X_test, y_test
   print('Clear previously loaded data.')
except:
   pass

X_train, y_train, X_val, y_val, X_test, y_test = get_CIFAR10_data()

提取的特征

对于每个图像,我们将计算一个面向梯度直方图(HOG)和一个颜色直方图,我们通过连接HOG和颜色直方图特征向量来形成每个图像的最终特征向量。

粗略地说,HOG应该捕获图像的纹理而忽略颜色信息,颜色直方图表示输入图像的颜色而忽略纹理。因此,我们期望将两者结合使用应该比单独使用两者更好。为了你的利益,验证这个假设是一件好事。

hog_feature和color_histogram_hsv函数都对单个图像进行操作,并返回该图像的特征向量。extract_features函数接受一组图像和一组特征函数,并对每个图像计算每个特征函数,将结果存储在一个矩阵中,其中的每一列是单个图像的所有特征向量的连接。

关于HOG,可以参考HOG特征(知乎)
ln[3]:

from cs231n.features import *

num_color_bins = 10 # Number of bins in the color histogram
feature_fns = [hog_feature, lambda img: color_histogram_hsv(img, nbin=num_color_bins)]
X_train_feats = extract_features
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Esaka7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值