SPACES icon indicating copy to clipboard operation
SPACES copied to clipboard

loss无法降下来

Open Wenpeng-huang opened this issue 4 years ago • 5 comments

苏神你好,我在跑你的代码的时候,抽取模型能取得比较好的效果rouge-1能得到0.5上下,但是在训练生成模型的时候loss无法下降,训练了50epoch也是一样的loss,没有改代码,rouge的得分为0,预测出来的结果也是重复的无用字符。请教一下这是问题出在了哪里,有遇到同样情况的人吗?能都分享一下是怎么解决的?(代码唯一修改的地方就是在运行extract_convert.py文件的时候报错,TypeError: Object of type int64 is not JSON serializable,然后我自己自定义了一个序列化规则,如下,就可以正常的保存预处理之后的数据了)其他地方没有进行修改。 class NpEncoder(json.JSONEncoder):
def default(self, obj): if isinstance(obj, np.integer):
return int(obj) elif isinstance(obj, np.floating): return float(obj) elif isinstance(obj, np.ndarray): return obj.tolist() else: return super(NpEncoder, self).default(obj)

Wenpeng-huang avatar Mar 29 '21 12:03 Wenpeng-huang

很抱歉,但是很遗憾,我也不知道你们什么问题。

因为有人报告过同样的问题,也有人报告过能成功训练,我自己也能成功训练,所以我也无从下手。

建议尝试:1、严格对齐环境;2、去掉EMA。

bojone avatar Mar 29 '21 15:03 bojone

感谢您百忙之后回答的我问题,除了你在介绍文档里提到的实验环境:tensorflow 1.14 + keras 2.3.1 + bert4keras 0.9.7之外,是否还有其他您认为可能对实验结果产生影响的实验环境呢?

Wenpeng-huang avatar Mar 29 '21 15:03 Wenpeng-huang

您好,”代码唯一修改的地方就是在运行extract_convert.py文件的时候报错,TypeError: Object of type int64 is not JSON serializable“该问题我也遇到过,在写入文档前,即 f.write(json.dumps(d, ensure_ascii=False) + '\n')前,加入两行代码 d = repr(d) d = eval(d)就可以正常运行了,不太明白什么原因,转换数据类型再转回来就可以存储了,确实很奇怪

YukeeWang avatar Apr 09 '21 07:04 YukeeWang

我也是这个错误: TypeError: Object of type 'int64' is not JSON serializable

加两行代码可以了,感谢解决!

zmz125 avatar Jun 07 '21 07:06 zmz125

感谢您百忙之后回答的我问题,除了你在介绍文档里提到的实验环境:tensorflow 1.14 + keras 2.3.1 + bert4keras 0.9.7之外,是否还有其他您认为可能对实验结果产生影响的实验环境呢?

确实其他的包也会影响,我的环境numpy原来是1.19,报很多错误,改成1.16就没错了

zmz125 avatar Jun 07 '21 07:06 zmz125