日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

NLP项目工作流程

發(fā)布時(shí)間:2024/7/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NLP项目工作流程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 1. 谷歌Colab設(shè)置
    • 2. 編寫代碼
    • 3. flask 微服務(wù)
    • 4. 打包到容器
    • 5. 容器托管

參考 基于深度學(xué)習(xí)的自然語(yǔ)言處理

使用這篇文章的數(shù)據(jù)(情感分類)進(jìn)行學(xué)習(xí)。

1. 谷歌Colab設(shè)置

Colab 地址

  • 新建筆記本

  • 設(shè)置

  • 選擇 GPU/TPU 加速計(jì)算

  • 測(cè)試 GPU 是否分配

import tensorflow as tf tf.test.gpu_device_name()

輸出:

/device:GPU:0
  • 上傳數(shù)據(jù)至谷歌云硬盤,并在Colab中加載


  • 解壓數(shù)據(jù)

2. 編寫代碼

import numpy as np import pandas as pddata = pd.read_csv("yelp_labelled.txt", sep='\t', names=['sentence', 'label'])data.head() # 1000條數(shù)據(jù)# 數(shù)據(jù) X 和 標(biāo)簽 y sentence = data['sentence'].values label = data['label'].values# 訓(xùn)練集 測(cè)試集拆分 from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(sentence, label, test_size=0.2, random_state=1)#%%max_features = 2000# 文本向量化 from keras.preprocessing.text import Tokenizer tokenizer = Tokenizer(num_words=max_features) tokenizer.fit_on_texts(X_train) # 訓(xùn)練tokenizer X_train = tokenizer.texts_to_sequences(X_train) # 轉(zhuǎn)成 [[ids...],[ids...],...] X_test = tokenizer.texts_to_sequences(X_test) vocab_size = len(tokenizer.word_index)+1 # +1 是因?yàn)閕ndex 0, 0 不對(duì)應(yīng)任何詞,用來(lái)padmaxlen = 50 # pad 保證每個(gè)句子的長(zhǎng)度相等 from keras.preprocessing.sequence import pad_sequences X_train = pad_sequences(X_train, maxlen=maxlen, padding='post') # post 尾部補(bǔ)0,pre 前部補(bǔ)0 X_test = pad_sequences(X_test, maxlen=maxlen, padding='post')#%%embed_dim = 256 hidden_units = 64from keras.models import Model, Sequential from keras.layers import Dense, LSTM, Embedding, Bidirectional, Dropout model = Sequential() model.add(Embedding(input_dim=max_features,output_dim=embed_dim,input_length=maxlen)) model.add(Bidirectional(LSTM(hidden_units))) model.add(Dropout(0.3)) model.add(Dense(1, activation='sigmoid')) # 二分類sigmoid, 多分類 softmaxmodel.compile(optimizer='adam', loss='binary_crossentropy',metrics=['accuracy']) model.summary() from keras.utils import plot_model plot_model(model, show_shapes=True, to_file='model.jpg') # 繪制模型結(jié)構(gòu)到文件#%%history = model.fit(X_train,y_train,batch_size=64,epochs=100,verbose=2,validation_split=0.1) # verbose 是否顯示日志信息,0不顯示,1顯示進(jìn)度條,2不顯示進(jìn)度條 loss, accuracy = model.evaluate(X_train, y_train, verbose=1) print("訓(xùn)練集:loss {0:.3f}, 準(zhǔn)確率:{1:.3f}".format(loss, accuracy)) loss, accuracy = model.evaluate(X_test, y_test, verbose=1) print("測(cè)試集:loss {0:.3f}, 準(zhǔn)確率:{1:.3f}".format(loss, accuracy))# 繪制訓(xùn)練曲線 from matplotlib import pyplot as plt import pandas as pd his = pd.DataFrame(history.history) loss = history.history['loss'] val_loss = history.history['val_loss'] acc = history.history['accuracy'] val_acc = history.history['val_accuracy']plt.plot(loss, label='train Loss') plt.plot(val_loss, label='valid Loss') plt.title('Training and Validation Loss') plt.legend() plt.grid() plt.show()plt.plot(acc, label='train Acc') plt.plot(val_acc, label='valid Acc') plt.title('Training and Validation Acc') plt.legend() plt.grid() plt.show()#%%model.save('trained_model.h5')import pickle with open('trained_tokenizer.pkl','wb') as f:pickle.dump(tokenizer, f)# 下載到本地 from google.colab import files files.download('trained_model.h5') files.download('trained_tokenizer.pkl')

3. flask 微服務(wù)

  • 以下內(nèi)容不懂,抄一遍

編寫 app.py

# Flask import pickle import numpy as np from keras.preprocessing.sequence import pad_sequences from keras.models import load_model def load_var():global model, tokenizermodel = load_model('trained_model.h5')model.make_predict_function()with open('trained_tokenizer.pkl','rb') as f:tokenizer = pickle.load(f)maxlen = 50 def process_txt(text):x = tokenizer.texts_to_sequences(text)x = pad_sequences(x, maxlen=maxlen, padding='post')return x#%%from flask import Flask, request, jsonify app = Flask(__name__)@app.route('/') def home_routine():return "hello NLP!"#%%@app.route("/prediction",methods=['POST']) def get_prediction():if request.method == 'POST':data = request.get_json()x = process_txt(data)prob = model.predict(x)pred = np.argmax(prob, axis=-1)return str(pred)#%%if __name__ == "__main__":load_var()app.run(debug=True)# 上線階段應(yīng)該為 app.run(host=0.0.0.0, port=80)
  • 運(yùn)行 python app.py
  • windows cmd 輸入:
    Invoke-WebRequest -Uri 127.0.0.1:5000/prediction -ContentType 'application/json' -Body '["The book was very poor", "Very nice", "bad, oh no", "i love you"]' -Method 'POST'

返回預(yù)測(cè)結(jié)果:

4. 打包到容器

  • 后序需要用 Docker 將 應(yīng)用程序包裝到容器中

5. 容器托管

  • 容器托管到網(wǎng)絡(luò)服務(wù),如 AWS EC2 實(shí)例

總結(jié)

以上是生活随笔為你收集整理的NLP项目工作流程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产一区二区三区黄 | 94av | 爱爱视频在线免费观看 | 亚洲一二三四在线观看 | 一级黄色毛毛片 | 国内精品久久久久久久久久久 | 精品国产视频在线 | 欧美破处大片 | 成年人精品视频 | 午夜黄网 | 黄色1级毛片| 神马午夜我不卡 | 息与子五十路翔田千里 | 色综合久久天天综合网 | 超碰超碰 | 国产精品18久久久久久vr下载 | 成人国产在线视频 | 97在线影院| 国产调教一区 | 无码无套少妇毛多18pxxxx | 在线va视频 | 男人的天堂一区 | 亚洲免费在线观看视频 | 国产精品高潮呻吟av | 日本精品久久久久久久 | 青草视频免费在线观看 | 午夜婷婷丁香 | 一卡二卡三卡 | 在线观看日批视频 | 国产一级一级片 | 亚洲性喷水 | 51调教丨国产调教视频 | 国产日产欧洲无码视频 | va在线看 | 中文字幕一区二区三区乱码在线 | 欧美xxxx×黑人性爽 | 亚洲自拍三区 | 国产精品宾馆在线精品酒店 | 日韩av一区二区在线播放 | av网站免费在线看 | 国产视频导航 | 国产精品亚洲一区二区三区 | 中文字幕伊人 | 美女诱惑av | 亚洲24p | 一区二区三区四区五区av | 片多多在线观看 | 成人免费在线播放视频 | 久久久免费毛片 | 亚洲成熟毛多妇女av毛片 | av黄网站 | 在线免费观看视频你懂的 | 欧美一级在线免费观看 | 黄色永久网站 | 最新国产精品自拍 | 午夜不卡在线观看 | 国产成人精品一区二区在线观看 | 亚洲欧美一 | 午夜极品视频 | 丁香花婷婷 | 亚洲午夜av久久乱码 | 性免费网站 | 国产精品一级黄片 | 国产视频污在线观看 | 欧美在线一区二区三区 | 少妇人妻综合久久中文字幕 | 久久伊人网站 | 精品人妻伦九区久久aaa片 | 在线观看亚洲专区 | 中文字幕一二三 | 五月天综合在线 | 不卡一区二区在线 | 精品久久久久久久久久久久久久久 | 久久艹在线观看 | 91狠狠爱| 极品少妇一区 | 痴女扩张宫交脱垂重口小说 | 轻轻色在线观看 | 免费天堂av | 青草青视频 | 成人午夜在线 | 男人的天堂网在线 | 亚洲com | 又粗又猛又爽又黄的视频 | 狠狠操在线播放 | 香蕉视频传媒 | 日本va欧美va国产激情 | 寂寞d奶大胸少妇 | 亚洲中文无码久久 | 日韩大片免费在线观看 | 黄色在线播放视频 | 性生交大片免费看视频 | 日韩人妻一区 | 日日摸日日添日日碰9学生露脸 | 免看一级a毛片一片成人不卡 | 欧美绿帽合集xxxxx | 欧洲a级片| 国产成人精品片 | 天天干夜夜干 |