0%

像素处理

案例1:首先使用numpy生成一个(8, 8)大小的数组,用来模拟一个黑色图像

1
2
3
4
5
6
7
import numpy as np
import cv2

img = np.zeros((8, 8), dtype=np.uint8)
cv2.imshow('one', img)
cv2.waitKey()
cv2.destroyAllWindows()
阅读全文 »

读取图像

retval = cv2.imread(filename, flages)

  • retval 是返回值,其值是读取到的图像,如果未读取到图像,则返回“None”

  • filename表示要读取的图像的完整文件名

  • flags 是读取标记用来控制读取文件的类型

    阅读全文 »

上⼀章我们介绍了卷积神经⽹络的基本原理,本章我们将带你了解现代的卷积神经⽹络架构,许多现代卷积神经⽹络的研究都是建⽴在这⼀章的基础上的。在本章中的每⼀个模型都曾⼀度占据主导地位,其中许多模型都是ImageNet竞赛的优胜者。ImageNet竞赛⾃2010年以来,⼀直是计算机视觉中监督学习进展的指向标。

  1. AlexNet。它是第⼀个在⼤规模视觉竞赛中击败传统计算机视觉模型的⼤型神经⽹络;

  2. 使用重复块的⽹络(VGG)。它利⽤许多重复的神经⽹络块;

  3. ⽹络中的⽹络(NiN)。它重复使⽤由卷积层和1 × 1卷积层(⽤来代替全连接层)来构建深层⽹络;

  4. 含并⾏连结的⽹络(GoogLeNet)。它使⽤并⾏连结的⽹络,通过不同窗⼝⼤⼩的卷积层和最⼤汇聚层来并⾏抽取信息;

  5. 残差⽹络(ResNet)。它通过残差块构建跨层的数据通道,是计算机视觉中最流⾏的体系架构;

  6. 稠密连接⽹络(DenseNet)。它的计算成本很⾼,但给我们带来了更好的效果。

    阅读全文 »

Tornado是一个Python Web框架和异步网络库,起初由FriendFeed开发,通过使用非阻塞网络I/OTornado可以支撑上万级的连接,处理长连接,WebSockets和其他需要与每个用户保持长久连接的应用。

阅读全文 »

创建Django项目

打开cmd命令行,进入到存放Django项目的文件夹,例如我这里进入这个路径:D:\学习笔记\Web开发\test

输入以下代码

1
django-admin startproject django_demo

输入完成后可以看到在当前文件夹下面生成了一个django_demo文件夹,这个文件夹即为我们创建的Django工程。

阅读全文 »

汇聚层(Pooling)

通常当我们处理图像时,我们希望逐渐降低隐藏表⽰的空间分辨率、聚集信息,这样随着我们在神经⽹络中层叠的上升,每个神经元对其敏感的感受野(输⼊)就越⼤。

而我们的机器学习任务通常会跟全局图像的问题有关(例如,“图像是否包含⼀只猫呢?”),所以我们最后⼀层的神经元应该对整个输⼊的全局敏感。通过逐渐聚合信息,⽣成越来越粗糙的映射,最终实现学习全局表⽰的⽬标,同时将卷积图层的所有优势保留在中间层。

阅读全文 »

从全连接到卷积

全连接层主要存在以下问题:

  1. 在使用全连接层处理图像数据时,需要先将图像展平为1维数组,然后再对进行相关的计算,这样做忽略了每个图像的空间结构信息。

  2. 全连接层需要将上下两层的神经元全部相连接,这样会导致参数量非常多。举个例子:图像大小是$100\times100$的图像,再输入隐藏层神经元数量为50的网络中时,产生的权重参数量为$100\times100\times50=500\enspace000$

    阅读全文 »

层和块

之前⾸次介绍神经⽹络时,我们关注的是具有单⼀输出的线性模型。在这⾥,整个模型只有⼀个输出。

注意,单个神经⽹络

  1. 接受⼀些输⼊;

  2. ⽣成相应的标量输出;

  3. 具有⼀组相关 参数(parameters),更新这些参数可以优化某⽬标函数

    阅读全文 »

线性回归的从零开始

1
2
3
4
%matplotlib inline
import random
import torch
from d2l import torch as d2l

生成数据集

为了简单起⻅,我们将根据带有噪声 $\epsilon$ 的线性模型构造⼀个⼈造数据集。我们的任务是使⽤这个有限样本的数据集来恢复这个模型的参数。我们将使⽤低维数据,这样可以很容易地将其可视化。

阅读全文 »