重用预先训练好的嵌入
重用预训练的嵌入
TensorFlow Hub项目可以在自己的模型中轻松重用预先训练好的模型组件。这些模型组件被称为模块。只需浏览TF Hub存储库,就可以找到需要的内容,然后将代码示例复制到下一个项目中,该模块将自动下载并与其预训练的权重一起包含在模型中:
#在情感分析模型中使用nnlm-en-dim50句子嵌入模块:
将tensorflow_hub导入为集线器
将张量流导入为tf
来自tensorflow import keras
model=keras . models . sequential([
集线器。kera slayer(' https://TF hub . dev/Google/tf2-preview/nnlm-en-dim 50/1 ',dtype=tf.string,input_shape=[],
output_shape=[50]),
致密(128,活化='relu '),
角质层致密(1,激活='relu ')
])
model.compile(loss=' binary _ cross熵',optimizer='adam ',metrics=['准确性'])
中枢。KerasLayer层将从给定的网址下载该模块。这个特殊的模块是一个句子编码器:它将字符串作为输入,并将每个字符串编码成一个向量(在本例中,是一个50维向量)。在内部,它解析字符串(用空格分隔单词),并在大型语料库(谷歌新闻7B语料库,70亿字长)上使用预先训练的嵌入矩阵嵌入每个单词。最后,它将计算所有单词嵌入的平均值,结果将是句子嵌入。然后可以添加两个简单的密集层来创建一个连续的情感分析模型。默认情况下,集线器。喀拉拉战士是不可追踪的,但是在创建时可以通过设置可训练=真来改变它。
接下来,您只需要加载IMDB注释数据集,无需预处理(批处理和预取除外)和直接训练模型:
将tensorflow _ datasets作为tfd导入
数据集,信息=tfds.load('imdb_reviews ',as_supervised=True,with_info=True)
train _ size=info . splits[' train ']。数量示例
批处理大小=32
train_set=数据集['train']。批次(批次大小)。预取(1)
历史=model.fit(train_set,epochs=5)
TF Hub模块的URL的最后一部分指定了所需模型的版本1。这种版本控制可以确保如果发布新的模块版本,模型不会被破坏。方便的是,如果你在网络浏览器中输入这个网址,你会得到这个模块的文档。默认情况下,TF Hub会将下载的文件缓存在本地系统的临时目录中。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/153029.html