Word2vec多线程(tensorflow)

workers = []

for _ in xrange(opts.concurrent_steps):

t = threading.Thread(target=self._train_thread_body)

t.start()

workers.append(t)

?
?

?
?

Word2vec.py使用了多线程

一般认为python多线程其实是单线程
由于python的设计 GPL 内存不是现成安全的

但是这里由于内部是调用c++代码
所以还是能起到多线程作用

?
?

而 Word2vec的 skipgramoperator内部类设计
解决多线程访问冲突问题用的是锁

mutex mu_;

random::PhiloxRandom philox_ GUARDED_BY(mu_);

random::SimplePhilox rng_ GUARDED_BY(mu_);

int32 current_epoch_ GUARDED_BY(mu_) = -1;

int64 total_words_processed_ GUARDED_BY(mu_) = 0;

int32 example_pos_ GUARDED_BY(mu_);

int32 label_pos_ GUARDED_BY(mu_);

int32 label_limit_ GUARDED_BY(mu_)

?
?

觉得operator的操作还是单线程并行执行的
由于锁

后面的batch计算是并行的

def _train_thread_body(self):

initial_epoch, = self._session.run([self._epoch])

while True:

_, epoch = self._session.run([self._train, self._epoch])

if epoch != initial_epoch:

break

?
?

(words, counts, words_per_epoch, self._epoch, self._words, examples,

labels) = word2vec.skipgram(filename=opts.train_data,

batch_size=opts.batch_size,

window_size=opts.window_size,

min_count=opts.min_count,

subsample=opts.subsample

?
?

?
?

?
?

The threading lock only affects?Python?code. If your thread is waiting for disk I/O or if it is calling C functions (e.g. via math library) you can ignore the GIL.

You may be able to use the async pattern to get around threading limits. Can you supply more information about what your program actually does?

I have issues with the technical accuracy of the video linked. David Beazley has done many well respected talks about the GIL at various Pycons. You can find them on pyvideo.org.

?
?

来自 <https://www.reddit.com/r/Python/comments/3s0vg9/is_my_multithreaded_python_program_doomed/>

?
?

?
?

时间: 2024-12-13 13:39:38

Word2vec多线程(tensorflow)的相关文章

Python Tensorflow下的Word2Vec代码解释

前言: 作为一个深度学习的重度狂热者,在学习了各项理论后一直想通过项目练手来学习深度学习的框架以及结构用在实战中的知识.心愿是好的,但机会却不好找.最近刚好有个项目,借此机会练手的过程中,我发现其实各大机器学习以及tensorflow框架群里的同学们也有类似的问题.于是希望借项目之手分享一点本人运行过程中的理解以及经验,希望在有益大家工作的基础上抛砖引玉,得到行业内各位专业人士的批评指点,多谢大家支持! 第一章博客我将会分为两个部分,这一部分将讲述Word2Vec在tensorflow中官方提供

tensorflow加载embedding模型进行可视化

1.功能 采用python的gensim模块训练的word2vec模型,然后采用tensorflow读取模型可视化embedding向量 ps:采用C++版本训练的w2v模型,python的gensim模块读不了. 2.python训练word2vec模型代码 import multiprocessing from gensim.models.word2vec import Word2Vec, LineSentence print('开始训练') train_file = "/tmp/train

合格大数据分析师应该具备的技能

阶段一.业务数据分析师 课程一.数据挖掘/分析师之硬技能 - 必备常用工具使用与高级技巧 本部分内容主要介绍了数据挖掘.分析师.数据产品经理必备的常用工具的,主要有 Excel,Visio,Xmind,PPT的涉及图表数据分析方面的高级技巧,包括但不限于:数据透视表演练.Vision跨职能流程图演练.Xmind项目计划导图演练.PPT高级动画技巧等! 一.Excel 1)数据分析工具EXECL入门介绍2)数据透视表演练 3) 数据处理4) EXECL报告自动化5) PPT报告数据自动化 二.Vi

学习笔记TF047:PlayGround、TensorBoard

PlayGround.http://playground.tensorflow.org .教学目的简单神经网络在线演示.实验图形化平台.可视化神经网络训练过程.在浏览器训练神经网络.界面,数据(DATA).特征(FEATURES).神经网络隐藏层(HIDDEN LAYERS).层中连接线.输出(OUTPUT). 数据.二维平面,蓝色正值,黄色负值.数据形态,圆形.异或.高斯.螺旋.数据配置,调整噪声(noise)大小,改变训练.测试数据比例(ratio),调整入输入每批(batch)数据数量1-

『TensorFlow』队列&amp;多线程&amp;TFRecod文件_我辈当高歌

TF数据读取队列机制详解 TFR文件多线程队列读写操作: TFRecod文件写入操作: import tensorflow as tf def _int64_feature(value): # value必须是可迭代对象 # 非int的数据使用bytes取代int64即可 return tf.train.Feature(int64_list=tf.train.Int64List(value=[value])) num_shards = 2 instance_perPshard = 2 for i

Tensorflow 的Word2vec demo解析

简单demo的代码路径在tensorflow\tensorflow\g3doc\tutorials\word2vec\word2vec_basic.py Sikp gram方式的model思路 http://tensorflow.org/tutorials/word2vec/index.md 另外可以参考cs224d课程的课件. ? ? 窗口设置为左右1个词 对应skip gram模型 就是一个单词预测其周围单词(cbow模型是 输入一系列context词,预测一个中心词) ? ? Quick

tensorflow学习记录-word2vec

好吧,我承认,我又开始搞word2vec了,好多次了. 上一篇是: http://www.cnblogs.com/charlesblc/p/7615825.html 先在阡陌机器上面训练了: [email protected] tensorflow-word2vec]$ pwd/home/work/data/code/dl/tensorflow/tensorflow-word2vec 然后把生成的vec拷贝到自己机器,准备画图.可是发现的air没有安装tensorflow.那么就再安装一下吧.

利用Tensorflow进行自然语言处理(NLP)系列之一Word2Vec

写在前面的话(可略过): 一直想写下.整理下利用Tensorflow或Keras工具进行自然语言处理(NLP)方面的文章,对比和纠结了一段时间,发现博众家之长不如静下心来一步一个脚印地去看一本书来得更实在,虽然慢但是心里相对踏实些.近期刚把Thushan Ganegedara写的<Natural Language Processing with TensorFlow>(2018年5月第一次出版),目前没看到中文版.讲真,看原版书确实很耗费精力,但原版书的好处是可以原汁原味地探索.写博文的过程中

Tensorflow word2vec+manage experiments

Lecture note 5: word2vec + manage experiments Word2vec Most of you are probably already familiar with word embedding and understand the importance of a model like word2vec. For those who aren't, Stanford CS 224N's lecture on word vectors is a great r