bert4keras icon indicating copy to clipboard operation
bert4keras copied to clipboard

GPU训练问题

Open StarsSummer opened this issue 5 years ago • 5 comments

提问时请尽可能提供如下信息:

基本信息

  • 你使用的操作系统: Redhat 4.8.5
  • 你使用的Python版本: 3.7.4
  • 你使用的Tensorflow版本: 1.14
  • 你使用的Keras版本: 2.31
  • 你使用的bert4keras版本: 0.9.0
  • 你使用纯keras还是tf.keras: keras
  • 你加载的预训练模型: bert

自我尝试

不管什么问题,请先尝试自行解决,“万般努力”之下仍然无法解决再来提问。此处请贴上你的努力过程。

服务器拥有四张 TeslaM10 8G显卡,运行task_relation_extarction任务,在tf1.14/1.15版本下,无法通过tf的mirroedstrategy进行多GPU训练,并且batch_size大于32就会报OOM

尝试使用tf2.0+(2.0,2.2,2.3均尝试)版本进行训练,可以通过mirrored策略进行多卡训练,但是只有第一张卡的使用率100%,其余只是占据了显存,并且训练过程不收敛,始终是precision:1,recall:0

是否有tf低版本的可行多gpu的训练方案?

StarsSummer avatar Oct 29 '20 06:10 StarsSummer

mirroedstrategy需要用tf.keras,传入环境变量TF_KERAS=1就好。

bojone avatar Oct 29 '20 06:10 bojone

mirroedstrategy需要用tf.keras,传入环境变量TF_KERAS=1就好。

传入后显示策略可能写的不对 ValueError: Variable (<tf.Variable 'Embedding-Token/embeddings:0' shape=(21128, 768) dtype=float32>) was not created in the distribution strategy scope of (<tensorflow.python.distribute.mirrored_strategy.MirroredStrategyV1 object at 0x7f399bf4c990>). It is most likely due to not all layers or the model or optimizer being created outside the distribution strategy scope. Try to make sure your code looks similar to the following. with strategy.scope(): model=_create_model() model.compile(...)

修改后又显示 NotImplementedError: fit_generator is not supported for models compiled with tf.distribute.Strategy.

可能有些冲突?

StarsSummer avatar Oct 29 '20 07:10 StarsSummer

加了 TF_KERAS=1 我也得到同样的错误。

不加的话只有单卡工作。

zhf avatar Oct 29 '20 12:10 zhf

https://github.com/bojone/bert4keras/blob/master/examples/task_seq2seq_autotitle_multigpu.py 请试用这个脚本

bojone avatar Jan 30 '21 06:01 bojone

提问时请尽可能提供如下信息:

基本信息

  • ・红帽4.8.5
  • 塔·佩森: 3.7.4
  • 大缩小字体功能 放大缩小字体功能
  • 加元喀拉斯: 2.31
  • 米**塔 bert4keras:**0.9.0
  • 4, 3克拉斯· 达夫**. 克拉斯**: 凯拉斯
  • 考特·

自我尝试

不管什么问题,请先尝试自行解决,"万般努力"之下仍然无法解决再来提问。此处请贴上你的努力过程。

4+3 8G+batch_size task_relation_extarction 30008.1000.15000

(2.0,2.3)

特夫 · 瓦格 · 瓦格 · 瓦格 · 德瓦格普 · 伊夫?

提问时请尽可能提供如下信息:

基本信息

  • 你使用的操作系统: Redhat 4.8.5
  • 你使用的Python版本: 3.7.4
  • 你使用的Tensorflow版本: 1.14
  • 你使用的Keras版本: 2.31
  • 你使用的bert4keras版本: 0.9.0
  • 你使用纯keras还是tf.keras: keras
  • 你加载的预训练模型: bert

自我尝试

不管什么问题,请先尝试自行解决,“万般努力”之下仍然无法解决再来提问。此处请贴上你的努力过程。

服务器拥有四张 TeslaM10 8G显卡,运行task_relation_extarction任务,在tf1.14/1.15版本下,无法通过tf的mirroedstrategy进行多GPU训练,并且batch_size大于32就会报OOM

尝试使用tf2.0+(2.0,2.2,2.3均尝试)版本进行训练,可以通过mirrored策略进行多卡训练,但是只有第一张卡的使用率100%,其余只是占据了显存,并且训练过程不收敛,始终是precision:1,recall:0

是否有tf低版本的可行多gpu的训练方案?

您好 十分不好意思打扰到您,我也在跑苏神这个task_relation_extarction任务,有几个事情想要请教您,首先我也想要用多GPU,然后我照着苏神task_seq2seq_autotitle_multigpu.py的这个例子改,但是在data_generator类这块儿 不太会改,始终跑不通,请问能将您task_relation_extarction任务的demo发一下给我吗?感激不尽 第二个问题,就是我是用自己的数据来做三元组抽取,也许是我数据质量不高或者数据不够的原因,我只有6种关系,但是f1值只能在0.6左右上不去,请问您那边指标怎么样呢,如果能加一下微信交流一下就更感激不尽了v:13201671931

songsa1 avatar Oct 20 '21 10:10 songsa1