embedding_matrix = pd.read_csv('embedding_matrix.csv')
embedding_matrix
import numpy as np
import pandas as pd
from tkinter import _flatten
import tensorflow as tfembedding_matrix = pd.read_csv('embedding_matrix.csv')
data = np.load('reuters.npz', allow_pickle=True)
data.files # 查看数据文件中的数据信息
X = data['x'] # 样本自变量
y = data['y'] # 样本标签(新闻主题类别)
pd.Series(X).apply(len).describe() # 统计新闻词语数量的分布
wordList = _list()) # 将所有新闻报道转为一个一维元组
len(list(set(wordList))) # 对单词编码去重并统计单词数量
30979
X_padding = tf.keras.preprocessing.sequence.pad_sequences(X, maxlen=200, padding='post') # 执行padding操作
input_shape=(200, )#文档长度
mask_zero=True
trainable=False不训练这个embedding
预训练embedding
30980*128=3965440就是我们要训练的参数的个数,即参数规模,这个参数是网络输出过程中的中间产物
# 搭建RNN神经网络模型
model = dels.Sequential([tf.keras.layers.Embedding(30980, 128, input_shape=(200, ), mask_zero=True,weights=[embedding_matrix.values], trainable=False),tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(64, return_sequences=True)),tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(32)),tf.keras.layers.Dense(64, activation='relu'),tf.keras.layers.Dense(46, activation='softmax')
])
model.summary() # 查看网络结构
# 网络模型训练参数设置
modelpile(loss='sparse_categorical_crossentropy',optimizer=tf.keras.optimizers.Adam(1e-4),metrics=['accuracy'])
model.fit(X_padding, y, validation_split=0.2, epochs=5, batch_size=8) # 模型训练
本文发布于:2024-02-02 04:44:54,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170682029341437.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |