创办一个网站的流程,长沙软件开发,在网上做贸易哪个网站好,南京网页搜索排名提升一、 背景与目的 背景#xff1a;配置好了theano#xff0c;弄了gpu#xff0c; 要学dnn方法。 目的#xff1a;本篇学习keras基本用法#xff0c; 学习怎么用keras写mlp#xff0c;学keras搞文本的基本要点。 二、 准备 工具包#xff1a; theano、numpy、keras等工具包…一、 背景与目的 背景配置好了theano弄了gpu 要学dnn方法。 目的本篇学习keras基本用法 学习怎么用keras写mlp学keras搞文本的基本要点。 二、 准备 工具包 theano、numpy、keras等工具包 数据集 如果下不来 可以用迅雷下弄到~/.keras/datasets/下面即可 代码位置examples/reuters_mlp.py 三、 代码赏析 Trains and evaluate a simple MLP
on the Reuters newswire topic classification task.
from __future__ import print_function
import numpy as np
np.random.seed(1337) # for reproducibilityfrom keras.datasets import reuters
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.utils import np_utils
from keras.preprocessing.text import Tokenizermax_words 1000 #vocab大小
batch_size 32 #mini_batch_size
nb_epoch 5 #大循环次数print(Loading data...)
(X_train, y_train), (X_test, y_test) reuters.load_data(nb_wordsmax_words, test_split0.2) #载入路透社语料#打印
print(len(X_train), train sequences)
print(len(X_test), test sequences)
#分类数目--原版路透社我记着是10来着应该是语料用的是大的那个
nb_classes np.max(y_train)1
print(nb_classes, classes)print(Vectorizing sequence data...)#tokenize
tokenizer Tokenizer(nb_wordsmax_words)#序列化取df前1000大#这里有个非常好玩的事 X_train 里面初始存的是wordindexwordindex是按照词大小来的应该是因为直接就给撇了#所以这个效率上还是很高的#转化的还是binary默认不是用tfidf
X_train tokenizer.sequences_to_matrix(X_train, modebinary)
X_test tokenizer.sequences_to_matrix(X_test, modebinary)
print(X_train shape:, X_train.shape)
print(X_test shape:, X_test.shape)print(Convert class vector to binary class matrix (for use with categorical_crossentropy))#这个就好理解多了 编码而已
Y_train np_utils.to_categorical(y_train, nb_classes)
Y_test np_utils.to_categorical(y_test, nb_classes)
print(Y_train shape:, Y_train.shape)
print(Y_test shape:, Y_test.shape)print(Building model...)
model Sequential()#第一层#Dense就是全连接层
model.add(Dense(512, input_shape(max_words,))) #输入维度, 512输出维度
model.add(Activation(relu)) #激活函数
model.add(Dropout(0.5)) #dropout#第二层
model.add(Dense(nb_classes))
model.add(Activation(softmax))
#损失函数设置、优化函数衡量标准
model.compile(losscategorical_crossentropy,optimizeradam,metrics[accuracy])
#训练交叉验证
history model.fit(X_train, Y_train,nb_epochnb_epoch, batch_sizebatch_size,verbose1, validation_split0.1)
score model.evaluate(X_test, Y_test,batch_sizebatch_size, verbose1)
print(Test score:, score[0])
print(Test accuracy:, score[1])四、 训练速度比较 此表调整到了相对好一点的两万词表要不然我觉得讨论效果没什么意义 训练时间-cpu训练时间-gpuval-cpuval-gpu第一轮22s 3s7979第二轮22s3s8181第三轮23s3s8080第四轮33s3s7879第五轮40s3s8080 看的出来即使是mlp效果的提升也是非常非常大的。 转载于:https://www.cnblogs.com/lavi/p/5877767.html