原文地址:
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