Python深度学习(用卷积神经网络处理序列)--学习笔记(十四)

用卷积神经网络处理序列

  • 第5章我们学习了卷积神经网络(convnet),并知道它在计算机视觉问题上表现出色,原因在于它能够进行卷积运算,从局部输入图块中提取特征,并能够将表示模块化,同时可以高效地利用数据。这些性质让卷积神经网络在计算机视觉领域表现优异,同样也让它对序列处理特别有效。时间可以被看作一个空间维度,就像二维图形的高度或宽度。
  • 对于某些序列处理问题,这种一维卷积神经网络的效果可以媲美RNN,而且计算代价通常要小很多。最近,一维卷积神经网络(通常与空洞卷积核(dilated kernel)一起使用)已经在音频生成和机器翻译领域取得了巨大成功。除了这些具体的成就,人们还早已知道,对于文本分类和时间序列预测等简单任务,小型一维卷积神经网络可以替代RNN,而且速度更快。
6.4.1 理解序列数据的一维卷积
  • 前面介绍的卷积层都是二维卷积,从图像张量中提取二维图块并对每个应用相同的变换。按照相同的方法也可以使用一维卷积,从序列中提取局部一维序列段(即子序列)。
  • 这种一维卷积层可以识别序列中的局部模式。因为对每个序列段执行相同的输入变换,所以在句子中某个位置学到的模式稍后可以在其他位置被识别,这使得一维卷积神经网络具有平移不变性(对于时间平移而言)。举个例子,使用大小为5的卷积窗口处理字符序列的一维卷积神经网络,应该能够学习长度不大于5的单词或单词片段,并且应该能够在输入句子中的任何位置识别这些单词或单词段。因此,字符级的一维卷积神经网络能够学会单词构词法。
6.4.2 序列数据的一维池化
  • 一维池化运算:从输入中提取一维序列段(即子序列),然后输出其最大值(最大池化)或平均值(平均池化)。与二维卷积神经网络一样,该运算也是用于降低一维输入的长度(子采样)。
6.4.3 实现一维卷积神经网络
  • Keras中的一维卷积神经网络是Conv1D层,其接口类似于Conv2D。它接收的输入时形状为(samples, time, features)的三维张量,并返回类似形状的三维张量。卷积窗口是时间轴上的一维窗口(时间轴是输入张量的第二个轴)。
# 准备IMDB数据
from keras.datasets import imdb
from keras.preprocessing import sequence

max_features = 10000
max_len = 500

print('Loading data...')
(x_train, y_train), (x_test, y_test) = imdb.load_data(num_words=max_features)
print(len(x_train), 'train sequences')
print(len(x_test), 'test sequences')

print('Pad sequences (samples x time)')
x_train = sequence.pad_sequences(x_train, maxlen=max_len)
x_test = sequence.pad_sequences(x_test, maxlen=max_len)
print('x_train shape:', x_train.shape)
print('x_test shape:', x_test.shape)
  • 一维卷积神经网络的架构与第5章的二维卷积神经网络相同,它是Conv1D层和MaxPooling1D层的堆叠,最后是一个全局池化层或Flatten层,将三维输出转换为二维输出,让你可以向模型中添加一个或多个Dense层,用于分类或回归。
  • 不过二者有一点不同:一维卷积神经网络可以使用更大的卷积窗口。对于二维卷积层 ,3x3的卷积窗口包含3x3=9个特征向量;但对于一维卷积层,大小为3的卷积窗口只包含3个卷积向量。因此,可以轻松使用大小等于7或9的
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习模型,广泛应用于图像识别、语音识别、自然语言处理等领域。Python是一种功能强大的编程语言,具有广泛的应用和支持,而且有许多流行的深度学习框架可供使用,如TensorFlow、PyTorch、Keras等,因此Python成为卷积神经网络实现的首选语言。 通过Python实现卷积神经网络,可以便捷地构建高级深度学习模型。在Python的各种深度学习框架中,提供了许多卷积神经网络的类和函数,这些类和函数可以轻松地创建卷积层、池化层和全连接层等各种网络层,并调整参数、优化模型,最终得到一个准确率高、效果好的深度学习模型。 卷积神经网络Python中的实现主要分为以下几个步骤: 1.准备数据集:选择对应的数据集,使用Python的数据处理库对数据进行读取、清洗和预处理。 2.构建卷积神经网络模型:使用Python深度学习框架,通过堆叠卷积层、池化层和全连接层等组成卷积神经网络模型。 3.训练模型:使用Python深度学习框架对模型进行训练,通过对数据集进行多次迭代训练,对卷积神经网络模型进行优化,提高模型准确率。 4.测试模型:使用Python深度学习框架对卷积神经网络模型进行测试,测试不同数据集下模型的准确率和性能。 通过Python实现卷积神经网络,可以有效提高深度学习模型的准确度和可靠性,为图像识别、语音识别等领域提供了强有力的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值