因为我们是要使用bert的词向量,希望可以简单如word2vec 一般,拿来就用 ,所以将 bert_model.ckpt中的保存的word_embedding提取出来,并进行保存。
也是一个tensorflow 保存 提取 模型的方法
首先 下载 bert中文预训练模型 chinese_L-12_H-768_A-12 这是一个768维的中文词向量 预训练模型
在这个文件夹下 使用下列 代码
import tensorflow as tf from tensorflow.python import pywrap_tensorflow import numpy as np ckpt_path = 'bert_model.ckpt' reader = pywrap_tensorflow.NewCheckpointReader(ckpt_path) param_dict = reader.get_variable_to_shape_map() # 读取 ckpt中的参数的维度的 #emd = param_dict['bert/embeddings/word_embeddings'] emd = reader.get_tensor('bert/embeddings/word_embeddings') # 得到ckpt中指定的tensor print(len(emd)) print(emd[:5]) param=np.array(emd) np.save('bert_embed.txt',param) ''' from tensorflow.python.tools import inspect_checkpoint as chkp chkp.