tensorflow字词嵌入之词向量word emmbeding word2vec

 

原文地址:

https://www.tensorflow.org/tutorials/representation/word2vec

简化实现:

tensorflow/examples/tutorials/word2vec/word2vec_basic.py

此基本示例包含下载某些数据、根据这些数据进行训练以及可视化结果所需的代码。

更复杂的实现:

models /tutorials/embedding/word2vec.py

在您可以自如阅读和运行基本版本后,您就可以查看更复杂的实现,其中展示了有关如何有效使用线程将数据移到文本模型、如何在训练期间设置检查点等更高级的 TensorFlow 原则。但是没有可视化.

 

2 训练步骤

2.1 下载models /tutorials/embedding/文件夹

fork只能直接fork整个models, 即可获得embedding/文件夹

 

2.2 生成word2vec_ops.so

对应问题是:   word2vec_ops.so not found

参考:

https://stackoverflow.com/questions/42106032/tensorflow-word2vec-error

https://github.com/tensorflow/models/tree/master/tutorials/embedding

解决:

下载models后在文件夹models /tutorials/embedding/下运行如下两段指令:

1) 下载解压,其中text8.zip大小31MB, source-archive.zip大小220KB,需要保证网速.

curl http://mattmahoney.net/dc/text8.zip > text8.zip
unzip text8.zip
curl https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/word2vec/source-archive.zip > source-archive.zip
unzip -p source-archive.zip  word2vec/trunk/questions-words.txt > questions-words.txt

2)生成.so

TF_CFLAGS=( $(python -c 'import tensorflow as tf; print(" ".join(tf.sysconfig.get_compile_flags()))') )
TF_LFLAGS=( $(python -c 'import tensorflow as tf; print(" ".join(tf.sysconfig.get_link_flags()))') )
g++ -std=c++11 -shared word2vec_ops.cc word2vec_kernels.cc -o word2vec_ops.so -fPIC ${TF_CFLAGS[@]} ${TF_LFLAGS[@]} -O2 -D_GLIBCXX_USE_CXX11_ABI=0

顺利执行完毕, 即可在文件夹下看到word2vec_ops.so

 

2.3 训练

开始训练:

python word2vec_optimized.py   \

    --train_data=text8   \

    --eval_data=questions-words.txt   \

    --save_path=$PWD/tmp/  \

    --epochs_to_train=2

其中$PWD是当前路径, 记得加上.

epochs_to_train默认是15个,训练太久了, 只是跑训练流程,  设置成2个即可.

每个epoch后会有验证

训练完成后生成checkpoint文件:    .ckpt

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值