keras 使用卷积神经网络进行序列处理

本文主要介绍使用卷积神经网络进行序列处理。

下面是示例代码:


# coding: utf-8

# In[2]:


'''
使用convnet进行序列处理:
在Keras中,通过`Conv1D`层使用1D convnet,它具有与`Conv2D`非常相似的接口。
它需要具有shape`(样本,时间,特征)的3D张量输入,并且还返回类似形状的3D张量。
卷积窗口是时间轴上的1D窗口,输入张量中的轴1。
构建一个简单的2层1D convnet,并将其应用于IMDB情感分类任务。
这是获取和预处理数据的代码
'''
from  keras.datasets import imdb
from keras.preprocessing import sequence

max_features = 10000  # 作为特征的单词数量
maxlen = 500  # 之后的文本全部截断

print('Loading data ...')


# In[5]:


(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')


# In[8]:


print('Pad sequences (samples x time)')
x_train = sequence.pad_sequences(x_train, maxlen=maxlen)
x_test = sequence.pad_sequences(x_test, maxlen=maxlen)
print('x_train shape', x_train.shape)
print('x_test shape', x_test.shape)


# In[11]:


'''
1D convnets的结构:它们由一堆`Conv1D`和`MaxPooling1D`层组成,
最终以全局池层或`Flatten`结尾。 图层,将3D输出转换为2D输出,
允许将一个或多个“Dense”层添加到模型中,以进行分

你可能感兴趣的:(keras 使用卷积神经网络进行序列处理)