当前位置: 首页 > news >正文

电子商务网站开发常见wordpress3栏模板

电子商务网站开发常见,wordpress3栏模板,百度下载安装免费版,河北城乡建设官方网站1. 背景 有些场景下#xff0c;开始的时候数据量很小#xff0c;如果我们用一个几千条数据训练一个全新的深度机器学习的文本分类模型#xff0c;效果不会很好。这个时候你有两种选择#xff0c;1.用传统的机器学习训练#xff0c;2.利用迁移学习在一个预训练的模型上训练…1. 背景 有些场景下开始的时候数据量很小如果我们用一个几千条数据训练一个全新的深度机器学习的文本分类模型效果不会很好。这个时候你有两种选择1.用传统的机器学习训练2.利用迁移学习在一个预训练的模型上训练。本博客教你怎么用tensorflow Hub和keras 在少量的数据上训练一个文本分类模型。 2. 实践 2.1. 下载IMDB 数据集参考下面博客。 Imdb影评的数据集介绍与下载_imdb影评数据集-CSDN博客 2.2.  预处理数据 替换掉imdb目录 imdb_raw_data_dir. 创建dataset目录。 import numpy as np import os as osimport re from sklearn.model_selection import train_test_splitvocab_size 30000 maxlen 200 imdb_raw_data_dir /Users/harry/Documents/apps/ml/aclImdb save_dir datasetdef get_data(datapath rD:\train_data\aclImdb\aclImdb\train ):pos_files os.listdir(datapath /pos)neg_files os.listdir(datapath /neg)print(len(pos_files))print(len(neg_files))pos_all []neg_all []for pf, nf in zip(pos_files, neg_files):with open(datapath /pos / pf, encodingutf-8) as f:s f.read()s process(s)pos_all.append(s)with open(datapath /neg / nf, encodingutf-8) as f:s f.read()s process(s)neg_all.append(s)print(len(pos_all))# print(pos_all[0])print(len(neg_all))X_orig np.array(pos_all neg_all)# print(X_orig)Y_orig np.array([1 for _ in range(len(pos_all))] [0 for _ in range(len(neg_all))])print(X_orig:, X_orig.shape)print(Y_orig:, Y_orig.shape)return X_orig, Y_origdef generate_dataset():X_orig, Y_orig get_data(imdb_raw_data_dir r/train)X_orig_test, Y_orig_test get_data(imdb_raw_data_dir r/test)X_orig np.concatenate([X_orig, X_orig_test])Y_orig np.concatenate([Y_orig, Y_orig_test])X X_origY Y_orignp.random.seed 1random_indexs np.random.permutation(len(X))X X[random_indexs]Y Y[random_indexs]X_train, X_test, y_train, y_test train_test_split(X, Y, test_size0.3)print(X_train:, X_train.shape)print(y_train:, y_train.shape)print(X_test:, X_test.shape)print(y_test:, y_test.shape)np.savez(save_dir /train_test, X_trainX_train, y_trainy_train, X_test X_test, y_testy_test )def rm_tags(text):re_tag re.compile(r[^])return re_tag.sub( , text)def clean_str(string):string re.sub(r[^A-Za-z0-9(),!?\\], , string)string re.sub(r\s, \s, string) # its - it sstring re.sub(r\ve, \ve, string) # Ive - I vestring re.sub(rn\t, n\t, string) # doesnt - does ntstring re.sub(r\re, \re, string) # youre - you arestring re.sub(r\d, \d, string) # youd - you dstring re.sub(r\ll, \ll, string) # youll - you llstring re.sub(r\m, \m, string) # Im - I mstring re.sub(r,, , , string)string re.sub(r!, ! , string)string re.sub(r\(, \( , string)string re.sub(r\), \) , string)string re.sub(r\?, \? , string)string re.sub(r\s{2,}, , string)return string.strip().lower()def process(text):text clean_str(text)text rm_tags(text)#text text.lower()return textif __name__ __main__:generate_dataset() 执行完后产生train_test.npz 文件 2.3.  训练模型 1. 取数据集 def get_dataset_to_train():train_test np.load(dataset/train_test.npz, allow_pickleTrue)x_train train_test[X_train]y_train train_test[y_train]x_test train_test[X_test]y_test train_test[y_test]return x_train, y_train, x_test, y_test 2. 创建模型 基于nnlm-en-dim50/2 预训练的文本嵌入向量在模型外面加了两层全连接。 def get_model():hub_layer hub.KerasLayer(embedding_url, input_shape[], dtypetf.string, trainableTrue)# Build the modelmodel Sequential([hub_layer,Dense(16, activationrelu),Dropout(0.5),Dense(2, activationsoftmax)])print(model.summary())model.compile(optimizerkeras.optimizers.Adam(),losskeras.losses.SparseCategoricalCrossentropy(),metrics[keras.metrics.SparseCategoricalAccuracy()])return model 还可以使用来自 TFHub 的许多其他预训练文本嵌入向量 google/nnlm-en-dim128/2 - 基于与 google/nnlm-en-dim50/2 相同的数据并使用相同的 NNLM 架构进行训练但具有更大的嵌入向量维度。更大维度的嵌入向量可以改进您的任务但可能需要更长的时间来训练您的模型。google/nnlm-en-dim128-with-normalization/2 - 与 google/nnlm-en-dim128/2 相同但具有额外的文本归一化例如移除标点符号。如果您的任务中的文本包含附加字符或标点符号这会有所帮助。google/universal-sentence-encoder/4 - 一个可产生 512 维嵌入向量的更大模型使用深度平均网络 (DAN) 编码器训练。 还有很多在 TFHub 上查找更多文本嵌入向量模型。 3. 评估你的模型 def evaluate_model(test_data, test_labels):model load_trained_model()# Evaluate the modelresults model.evaluate(test_data, test_labels, verbose2)print(Test accuracy:, results[1])def load_trained_model():# model get_model()# model.load_weights(./models/model_new1.h5)model tf.keras.models.load_model(models_pb)return model 4. 测试几个例子 def predict(real_data):model load_trained_model()probabilities model.predict([real_data]);print(probabilities :,probabilities)result get_label(probabilities)return resultdef get_label(probabilities):index np.argmax(probabilities[0])print(index : str(index))result_str index_dic.get(str(index))# result_str list(index_dic.keys())[list(index_dic.values()).index(index)]return result_strdef predict_my_module():# review I dont like it# review this is bad movie # review This is good moviereview this is terrible movie# review This isn‘t great movie# review i think this is bad movie# review Im not very disappoint for this movie# review Im not very disappoint for this movie# review I am very happy for this movie#neg:0 postive:1s predict(review)print(s)if __name__ __main__:x_train, y_train, x_test, y_test get_dataset_to_train()model get_model()model train(model, x_train, y_train, x_test, y_test)evaluate_model(x_test, y_test)predict_my_module() 完整代码 import numpy as np import tensorflow as tf from keras.models import Sequential from keras.layers import Dense, Dropout import keras as keras from keras.callbacks import EarlyStopping, ModelCheckpoint import tensorflow_hub as hubembedding_url https://tfhub.dev/google/nnlm-en-dim50/2index_dic {0:negative, 1: positive}def get_dataset_to_train():train_test np.load(dataset/train_test.npz, allow_pickleTrue)x_train train_test[X_train]y_train train_test[y_train]x_test train_test[X_test]y_test train_test[y_test]return x_train, y_train, x_test, y_testdef get_model():hub_layer hub.KerasLayer(embedding_url, input_shape[], dtypetf.string, trainableTrue)# Build the modelmodel Sequential([hub_layer,Dense(16, activationrelu),Dropout(0.5),Dense(2, activationsoftmax)])print(model.summary())model.compile(optimizerkeras.optimizers.Adam(),losskeras.losses.SparseCategoricalCrossentropy(),metrics[keras.metrics.SparseCategoricalAccuracy()])return modeldef train(model , train_data, train_labels, test_data, test_labels):# train_data, train_labels, test_data, test_labels get_dataset_to_train()train_data [tf.compat.as_str(tf.compat.as_bytes(str(x))) for x in train_data]test_data [tf.compat.as_str(tf.compat.as_bytes(str(x))) for x in test_data]train_data np.asarray(train_data) # Convert to numpy arraytest_data np.asarray(test_data) # Convert to numpy arrayprint(train_data.shape, test_data.shape)early_stop EarlyStopping(monitorval_sparse_categorical_accuracy, patience4, modemax, verbose1)# 定义ModelCheckpoint回调函数# checkpoint ModelCheckpoint( ./models/model_new1.h5, monitorval_sparse_categorical_accuracy, save_best_onlyTrue,# modemax, verbose1)checkpoint_pb ModelCheckpoint(filepath./models_pb/, monitorval_sparse_categorical_accuracy, save_weights_onlyFalse, save_best_onlyTrue)history model.fit(train_data[:2000], train_labels[:2000], epochs45, batch_size45, validation_data(test_data, test_labels), shuffleTrue,verbose1, callbacks[early_stop, checkpoint_pb])print(history, history)return modeldef evaluate_model(test_data, test_labels):model load_trained_model()# Evaluate the modelresults model.evaluate(test_data, test_labels, verbose2)print(Test accuracy:, results[1])def predict(real_data):model load_trained_model()probabilities model.predict([real_data]);print(probabilities :,probabilities)result get_label(probabilities)return resultdef get_label(probabilities):index np.argmax(probabilities[0])print(index : str(index))result_str index_dic.get(str(index))# result_str list(index_dic.keys())[list(index_dic.values()).index(index)]return result_strdef load_trained_model():# model get_model()# model.load_weights(./models/model_new1.h5)model tf.keras.models.load_model(models_pb)return modeldef predict_my_module():# review I dont like it# review this is bad movie # review This is good moviereview this is terrible movie# review This isn‘t great movie# review i think this is bad movie# review Im not very disappoint for this movie# review Im not very disappoint for this movie# review I am very happy for this movie#neg:0 postive:1s predict(review)print(s)if __name__ __main__:x_train, y_train, x_test, y_test get_dataset_to_train()model get_model()model train(model, x_train, y_train, x_test, y_test)evaluate_model(x_test, y_test)predict_my_module()
http://www.pierceye.com/news/491374/

相关文章:

  • 广州市网站建设 合优系统学做网站
  • 网站建设客户相关问题wordpress主题怎么选
  • 网站数据迁移教程网络营销项目策划书范文
  • 网站 只收录首页网站建设手机端页面模板
  • 光明区建设局网站云南省工程建设造价协会网站
  • 网站建设视频教程 百度云网站制作背景图片
  • 网站域名起名网站建设企业排行榜
  • 高端品牌网站定制设计wordpress多张页面左右滑动
  • git网站开发网名logo设计制作
  • seo在线网站诊断推推蛙seo兼职怎么收费
  • 网站数据分析视频深圳市昊客网络科技有限公司
  • 外贸网站做开关行业的哪个好网站互动优化
  • 西班牙语网站设计哪家好开发一个跑腿app需要多少钱
  • 怎么才能提高网站点击量 免费网站原型图软件
  • wordpress私人建站主题网络公司手机网站
  • 做网站设计比较好的公司wordpress wp_trim_words
  • 湖南对外建设集团网站wordpress中数据库配置文件
  • 设计类网站模板物流企业网站建设策划书
  • dw建设手机网站永久免费网站推荐
  • 微信官方网站怎么进入自己做网站推广试玩
  • 郑州网站建设老牌公司贵州省城乡建设厅网站材料价
  • 网站建设费是什么上海建设网站公司
  • 怎么查出这个网站是谁做的谷歌首页
  • 桂林网站建设国内crm系统哪家好
  • 网站建设数据库配置查看商标是否被注册官网
  • 关于网站制作做网站用com还是cn好
  • 手机网站支付网站建设 sheji021
  • 兴义网站制作网上开的公司网站打不开
  • 三只松鼠的网站建设理念桐庐营销型网站建设
  • 建设银行网站未响应大理如何做百度的网站