微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Windows上使用Word2vec和Tensorflow

在Tensorflow的这个教程文件中 ,find了以下行(第45行)来加载word2vec“extension”:

word2vec = tf.load_op_library(os.path.join(os.path.dirname(os.path.realpath(__file__)),'word2vec_ops.so'))

我正在使用Windows 10,正如在这个问题中指出的, .so文件是针对Linux的。

什么是在Windows上加载的等效扩展?

另外,我不明白为什么在安装Tensorflow时包含了这么多的东西,但是Word2Vec必须在本地构build。 在文档中, 在Windows上安装TensorFlow ,没有提到必须构build这些扩展。

如何将LF转换为CRLF?

简单的非基于Web的错误跟踪器

使用命名(fifo)pipe道在python和c ++之间传输数组(图像)

在Python 2.7中使用线程smtpd的linux和os x之间奇怪的行为差异

一个简单的Python部署问题 – 一个痛苦的世界

这是一个旧的做法,现在已经改变了,一切都随着安装? 如果是这样,那么这个改变如何适用于例子中的word2vec模块呢?

Python Windows启动程序不读“py.ini”

不能让pandas安装! 帮帮我! (pip安装pandas)

从另一台机器同一networking访问Django devserver

在Linux中构build便携式Tesseract OCR库

从MS Windows任务栏隐藏窗口

是的,它已经改变了! Tensorflow现在包含了一个辅助函数tf.nn.embedding_lookup ,可以很容易地嵌入数据。

你可以通过做这样的事情来使用它,即

embeddings = tf.Variable( tf.random_uniform([vocabulary_size,embedding_size],-1.0,1.0)) nce_weights = tf.Variable( tf.truncated_normal([vocabulary_size,stddev=1.0 / math.sqrt(embedding_size))) nce_biases = tf.Variable(tf.zeros([vocabulary_size])) # Placeholders for inputs train_inputs = tf.placeholder(tf.int32,shape=[batch_size]) train_labels = tf.placeholder(tf.int32,shape=[batch_size,1]) embed = tf.nn.embedding_lookup(embeddings,train_inputs) # Compute the NCE loss,using a sample of the negative labels each time. loss = tf.reduce_mean( tf.nn.nce_loss(weights=nce_weights,biases=nce_biases,labels=train_labels,inputs=embed,num_sampled=num_sampled,num_classes=vocabulary_size)) # We use the SGD optimizer. optimizer = tf.train.GradientDescentOptimizer(learning_rate=1.0).minimize(loss) for inputs,labels in generate_batch(...): Feed_dict = {train_inputs: inputs,train_labels: labels} _,cur_loss = session.run([optimizer,loss],Feed_dict=Feed_dict)

完整的代码在这里

一般来说,我会犹豫过度依赖tensorflow/models回购。 它的一部分是相当过时的。 主要的tensorflow/tensorflow回购得到更好的维护。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐