[英]Adding an op in tensorflow in windows
我目前正在嘗試優化tensorflow的word2vec實現,以使其像原始gensim word2vec實現那樣工作。 但是,這里的教程
https://github.com/tensorflow/models/blob/master/tutorials/embedding/word2vec.py ,要求我首先向tensorflow添加新操作。
我已經將存儲庫克隆到了我的桌面上,即名為tensorflow的目錄中的tensorflow / tensorflow-master和tensorflow / models-master。 我嘗試編譯位於models-master / tutorials / embedddings中的word2vec_ops.cc和word2vec_kernels.cc文件(定義新op的實現和接口)
它給我以下錯誤消息-
In file included from word2vec_kernels.cc:16:0:
tensorflow/core/framework/op.h:23:54: fatal error:
tensorflow/core/framework/op_def_builder.h: No such file or directory
compilation terminated.
我還將tensorflow-master / tensorflow /文件夾復制到models-master / tutorials / embedding /中,以便所有必需的頭文件都在同一目錄中(請參閱github repo以供參考,我在Windows上具有類似的目錄樹: https: //github.com/tensorflow/tensorflow/tree/master/tensorflow/core )
原始編譯程序:
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
此命令序列在Windows終端中不起作用(顯然)。 所以我也在代碼本身中定義了標志
flags.DEFINE_string("save_path", 'C:\Users\Desktop\log_dir\gensim\22',
"Directory to write the model and "
"training summaries.")
flags.DEFINE_string("train_data", 'cmpl.txt', "Training text file. "
"E.g., unzipped file
http://mattmahoney.net/dc/text8.zip.")
flags.DEFINE_string(
"eval_data", 'questions-words.txt', "File consisting of analogies of four
tokens."
"embedding 2 - embedding 1 + embedding 3 should be close "
"to embedding 4."
"See README.md for how to get 'questions-words.txt'.")
,所以我不需要將它們傳遞到sys.argv(),(因此不需要前兩個命令),但是仍然使用anaconda mingw,我無法為實現構建動態庫。錯誤提早
我已經找到了使用Linux的Windows子系統的解決方案。 因此,不是雙重引導或虛擬環境,請在搜索框中的Windows上鍵入“打開/關閉Windows功能”,然后選中“-> Windows子系統”
然后,Windows要求您重新啟動系統,然后可以從Windows存儲中安裝任何相關終端(我安裝了Ubuntu 18.04)。
接下來,設置非常簡單,只需設置用戶名和pwd,就可以了。
您可以通過以下方式訪問Windows上的任何文件:
cd /mnt/c/
因此,我將工作目錄加載到C驅動器上並使用了Linux等系統。 盡管這是一個非常round回的解決方案,但它是臨時工作的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.