Open ditingdapeng opened 3 years ago
tf 1.14 may help you out.
tf 1.14 may help you out.
感谢回复!但是我使用tf1.14, keras2.3.1时,会提示“Use tf.where in 2.0, which has the same broadcast rule as np.where”的warning,紧接着程序就停止了,请问这应该怎么改进?
waring1: Use tf.where in 2.0, which has the same broadcast rule as np.where; Waing2: The name tf.global_variables is deprecated,Please use tf.compat.v1.global_variables instead;
但是指向的位置是在tensorflow的包中,该怎么修改?
根据问题路径换了1.5版本的tensorflow,依旧没有解决
换成2.20的tensorflow可以跑,但是还是会出现f1: 0.00000, precision: 1.00000, recall: 0.00000, best f1: 0.00000的错误
这个问题我没法帮你解决,但是有几点观测供你参考:
1、warning不是错误,tf中出现warning是很正常的事情; 2、所以我不知道你的“紧接着程序就停止了”是怎么回事,但可以确定跟warning没关系,建议自行排查; 3、tf 1.14 + keras 2.3.1是我开发时用的环境,按理说出错的概率最小; 4、“f1: 0.00000, precision: 1.00000, recall: 0.00000, best f1: 0.00000”不是错误,只是模型没优化成功; 5、模型优化不成功,这是一个“运气”问题,我目前没法解决; 6、没错,确实是“运气”问题,因为同一个脚本,同一个环境,有人跑成功过(第一个epoch的loss降到1以下),有人就是死活跑不成功(loss死活不降),有人坚持跑了七八十个epoch才成功(很多个epoch之后loss才降低下来); 7、再次强调,这是一个“运气”问题,下面是一些“碰运气”的思路:
谢谢苏神回复,我排查下原因!
/home/think/anaconda3/envs/qa_py2.7/bin/python2.7 /home/think/Code/NER/ner_extract.py
Using TensorFlow backend.
2020-11-28 13:20:12.850430: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2020-11-28 13:20:12.885629: I tensorflow/core/platform/profile_utils/cpu_utils.cc:94] CPU Frequency: 3600000000 Hz
2020-11-28 13:20:12.886703: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x560a632e7ab0 executing computations on platform Host. Devices:
2020-11-28 13:20:12.886759: I tensorflow/compiler/xla/service/service.cc:175] StreamExecutor device (0):
Epoch 1/20
Process finished with exit code 137 (interrupted by signal 9: SIGKILL) --------------------------------------
我还用了py2.7,tensor 1.14, keras==2.3.1,这是直接运行的结果-- 一趟epoch就停掉了,什么原因呢?
苏神您好,之前出现的问题是内存溢出,当我把batch_size设小时,问题已经解决。 现在已经进行到了:53865/86554:loss :0.0338,而0.0338一直没有再下降,请问如果我此时停掉的话,模型会进行保存吗或怎样把模型进行保存?
感谢回复!
苏神您好,之前出现的问题是内存溢出,当我把batch_size设小时,问题已经解决。 现在已经进行到了:53865/86554:loss :0.0338,而0.0338一直没有再下降,请问如果我此时停掉的话,模型会进行保存吗或怎样把模型进行保存?
感谢回复!
每个epoch保存一次,没有达到一个epoch不会保存
感谢苏神回复!
苏神,请问模型文件是保存在哪里?
想表达的意思是:通过save_weights来保存的模型参数,如何作为模型来使用呢?
只是模型没优化成功
关于第六点,我可以贡献一点数据。这个 example 我在不同机器上跑过很多次,觉得最主要的就是不要用 tf2.0 以上,全是 bug。在 tf1.15 + keras 2.3.1 下,原始数据第一个 epoch 就能到 1 以内,大概 7 个 epoch 达到最佳 。显存 12G 以下可能训练途中会爆。
只是模型没优化成功
关于第六点,我可以贡献一点数据。这个 example 我在不同机器上跑过很多次,觉得最主要的就是不要用 tf2.0 以上,全是 bug。在 tf1.15 + keras 2.3.1 下,原始数据第一个 epoch 就能到 1 以内,大概 7 个 epoch 达到最佳 。显存 12G 以下可能训练途中会爆。
多谢老哥回复!换了苏神的原版本环境,已经成功(py2.7)。但是现在还有问题没有解决:
感谢苏神和大佬解答!
- 请问如何用该模型加载来进行predict呢?
- 另外predict的参数该是什么?(我看到是sequence数据?不能直接用text吗)
你是刚学编程吗?整个脚本包括训练、预测、打分整个流程都有了,你来问这种问题?你理解了整个脚本了没有呢?
谢谢指导苏神,已经用extract_spoes预测到了结果,但是在输出时,遇到了奇怪的编码问题:
通过用chardet来判断,第一个实体是TIS-620编码,第二个是Unicode编码,第三个是ISO编码。
为什么会出现三种不同的编码方式呢?
遇到同样问题,想问下是怎么解决的呢 ?
文件:bert4keras/examples/task_relation_extraction.py
基本信息
输出信息
训练了10个Epoch,