loss无法降下来
苏神你好,我在跑你的代码的时候,抽取模型能取得比较好的效果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)
很抱歉,但是很遗憾,我也不知道你们什么问题。
因为有人报告过同样的问题,也有人报告过能成功训练,我自己也能成功训练,所以我也无从下手。
建议尝试:1、严格对齐环境;2、去掉EMA。
感谢您百忙之后回答的我问题,除了你在介绍文档里提到的实验环境:tensorflow 1.14 + keras 2.3.1 + bert4keras 0.9.7之外,是否还有其他您认为可能对实验结果产生影响的实验环境呢?
您好,”代码唯一修改的地方就是在运行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)就可以正常运行了,不太明白什么原因,转换数据类型再转回来就可以存储了,确实很奇怪
我也是这个错误: TypeError: Object of type 'int64' is not JSON serializable
加两行代码可以了,感谢解决!
感谢您百忙之后回答的我问题,除了你在介绍文档里提到的实验环境:tensorflow 1.14 + keras 2.3.1 + bert4keras 0.9.7之外,是否还有其他您认为可能对实验结果产生影响的实验环境呢?
确实其他的包也会影响,我的环境numpy原来是1.19,报很多错误,改成1.16就没错了