簡體   English   中英

在Windows中的Tensorflow中添加操作

[英]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_o​​ps.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM