同步操作将从 zhang_star/NBbook 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
from __future__ import division, print_function, absolute_importimport tensorflow as tfimport tflearnfrom tflearn.layers.core import input_data, dropout, fully_connectedfrom tflearn.layers.conv import conv_1d, global_max_poolfrom tflearn.layers.merge_ops import mergefrom tflearn.layers.estimator import regressionfrom tflearn.data_utils import to_categorical, pad_sequencesfrom tflearn.datasets import imdbimport osfrom tensorflow.contrib.learn.python import learnfrom sklearn import metricsfrom sklearn.model_selection import train_test_splitimport numpy as npMAX_DOCUMENT_LENGTH = 200EMBEDDING_SIZE = 50n_words=0def load_one_file(filename):x=""with open(filename) as f:for line in f:x+=linereturn xdef load_files(rootdir,label):list = os.listdir(rootdir)x=[]y=[]for i in range(0, len(list)):path = os.path.join(rootdir, list[i])if os.path.isfile(path):#print "Load file %s" % pathy.append(label)x.append(load_one_file(path))return x,ydef load_data():x=[]y=[]x1,y1=load_files("../data/movie-review-data/review_polarity/txt_sentoken/pos/",0)x2,y2=load_files("../data/movie-review-data/review_polarity/txt_sentoken/neg/", 1)x=x1+x2y=y1+y2return x,ydef do_cnn(trainX, trainY,testX, testY):global n_words# Data preprocessing# Sequence paddingtrainX = pad_sequences(trainX, maxlen=MAX_DOCUMENT_LENGTH, value=0.)testX = pad_sequences(testX, maxlen=MAX_DOCUMENT_LENGTH, value=0.)# Converting labels to binary vectorstrainY = to_categorical(trainY, nb_classes=2)testY = to_categorical(testY, nb_classes=2)# Building convolutional networknetwork = input_data(shape=[None, MAX_DOCUMENT_LENGTH], name='input')network = tflearn.embedding(network, input_dim=n_words+1, output_dim=128)branch1 = conv_1d(network, 128, 3, padding='valid', activation='relu', regularizer="L2")branch2 = conv_1d(network, 128, 4, padding='valid', activation='relu', regularizer="L2")branch3 = conv_1d(network, 128, 5, padding='valid', activation='relu', regularizer="L2")network = merge([branch1, branch2, branch3], mode='concat', axis=1)network = tf.expand_dims(network, 2)network = global_max_pool(network)network = dropout(network, 0.5)network = fully_connected(network, 2, activation='softmax')network = regression(network, optimizer='adam', learning_rate=0.001,loss='categorical_crossentropy', name='target')# Trainingmodel = tflearn.DNN(network, tensorboard_verbose=0)model.fit(trainX, trainY, n_epoch = 20, shuffle=True, validation_set=(testX, testY), show_metric=True, batch_size=32)if __name__ == '__main__':# IMDB Dataset loadingglobal n_wordsx,y=load_data()x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.4, random_state=0)vp = learn.preprocessing.VocabularyProcessor(max_document_length=MAX_DOCUMENT_LENGTH, min_frequency=1)vp.fit(x)x_train = np.array(list(vp.transform(x_train)))x_test = np.array(list(vp.transform(x_test)))n_words=len(vp.vocabulary_)print('Total words: %d' % n_words)do_cnn(x_train, y_train,x_test, y_test)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。