Coder Social home page Coder Social logo

callbacks about unif HOT 18 OPEN

geyingli avatar geyingli commented on June 1, 2024
callbacks

from unif.

Comments (18)

geyingli avatar geyingli commented on June 1, 2024

你好,没有能够理解你的意思。请问需要验证什么内容呢

from unif.

wangbq18 avatar wangbq18 commented on June 1, 2024

你好,没有能够理解你的意思。请问需要验证什么内容呢

就是训练一定的step 后加载训练好额模型在验证集上进行验证,然后继续训练

from unif.

geyingli avatar geyingli commented on June 1, 2024

这个是可以的,通过 target_steps 和 total_steps 两个参数控制训练断点,在断点上进行验证。README_CN.md 里面有详细介绍,在 训练/推理/评分 这一节,这里就不重复了

from unif.

wangbq18 avatar wangbq18 commented on June 1, 2024

这个当然是可以的,通过 target_steps 和 total_steps 两个参数控制训练断点,在断点上进行验证。README.md 里面有详细介绍,在 训练/推理/评分 这一节,这里就不重复了

嗯嗯,我看到这个了,我这边设置target_steps后,训练中断 验证完成后,整个训练过程也停止了,不清楚怎么回事

from unif.

wangbq18 avatar wangbq18 commented on June 1, 2024

这个是可以的,通过 target_steps 和 total_steps 两个参数控制训练断点,在断点上进行验证。README_CN.md 里面有详细介绍,在 训练/推理/评分 这一节,这里就不重复了

total_steps = len(_X)//8*3
model.fit(X=_X,
y=_Y,
sample_weight=None,
X_tokenized=None,
batch_size=8,
learning_rate=5e-5,
target_steps=500,
total_steps=total_steps, #
warmup_ratio=0.1,
print_per_secs=60,
save_per_steps=500)

score = model.score(X=_Xd, y=_Yd, sample_weight=None, X_tokenized=None, batch_size=8)
print(score)
类似这个

from unif.

geyingli avatar geyingli commented on June 1, 2024

python 是动态语言,执行完这一行代码以后就不会再重复了,你可以写一个 for 或 while 循环让系统再一次执行 .fit() 解决这个问题。记得在每一次循环时改变 target_steps 这个值。示例:

# 假设你需要中途进行 10 次模型验证,而训练总共持续 6 轮
for loop_id in range(10):
    print('*** Running training on loop %d ***' % loop_id)
    model.fit(X, y, target_steps=((loop_id + 1) * -0.6), total_steps=-6)
    print('*** Running evaluation ***')
    print(model.score(X_dev, y_dev))```

from unif.

wangbq18 avatar wangbq18 commented on June 1, 2024

示例:

# 假设你需要中途进行 10 次模型验证,而训练总共持续 6 轮
for loop_id in range(10):
    print('*** Running training on loop %d ***' % loop_id)
    model.fit(X, y, target_steps=((loop_id + 1) * -0.6), total_steps=-6)
    print('*** Running evaluation ***')
    print(model.score(X_dev, y_dev))```

好的,明白了,如果能在fit函数中添加成类似keras 中的回调函数callbacks方法就更棒了

from unif.

geyingli avatar geyingli commented on June 1, 2024

这样对于原 Keras 的使用用户更友好,但可能会增加 API 的复杂度,不利于其他初学者。所以还是得委屈你一下了

from unif.

wangbq18 avatar wangbq18 commented on June 1, 2024

这样对于原 Keras 的使用用户更友好,但可能会增加 API 的复杂度,不利于其他初学者。所以还是得委屈你一下了

明白,感谢解答!

from unif.

geyingli avatar geyingli commented on June 1, 2024

嗯嗯,小意思~ 还得感谢你投入时间尝试这个名不见经传的小作品,有什么问题或意见可以再随时联系

from unif.

wangbq18 avatar wangbq18 commented on June 1, 2024

嗯嗯,小意思~ 还得感谢你投入时间尝试这个名不见经传的小作品,有什么问题或意见可以再随时联系

做实体识别任务时,解码输出的实体会含有[UNK]的情况,建议解码时直接从原始文本中切出实体的span

from unif.

geyingli avatar geyingli commented on June 1, 2024

好的好的,这个反馈很棒,感谢。从原始文本切容易出错,要加许多复杂的逻辑,span-based 的 MRC 类也会有这种问题,我暂时还没想好怎么用简单的方法规范地处理这一类问题,这一改就是代码的大改。要不你暂时先试试用正则表达式从原始文本提取吧,把 [UNK] 替换为 .*,或者其他的文本处理算法

from unif.

wangbq18 avatar wangbq18 commented on June 1, 2024

好的好的,这个反馈很棒,感谢。从原始文本切容易出错,要加许多复杂的逻辑,span-based 的 MRC 类也会有这种问题,我暂时还没想好怎么用简单的方法规范地处理这一类问题,这一改就是代码的大改。要不你暂时先试试用正则表达式从原始文本提取吧,把 [UNK] 替换为 .*,或者其他的文本处理算法

好的好的,这个反馈很棒,感谢。从原始文本切容易出错,要加许多复杂的逻辑,span-based 的 MRC 类也会有这种问题,我暂时还没想好怎么用简单的方法规范地处理这一类问题,这一改就是代码的大改。要不你暂时先试试用正则表达式从原始文本提取吧,把 [UNK] 替换为 .*,或者其他的文本处理算法

目前大家都是从tokenizer入手,建立编码前后id之间的映射关系,然后直接从原始文本中切出实体

from unif.

geyingli avatar geyingli commented on June 1, 2024

嗯嗯,好的,这个我知道。如果没有更简单的方法,那我找个时间处理�一下

from unif.

geyingli avatar geyingli commented on June 1, 2024

NER 类写出来以后,还没有在大型数据集上测试过,你觉得其他的体验如何呢

from unif.

wangbq18 avatar wangbq18 commented on June 1, 2024

NER 类写出来以后,还没有在大型数据集上测试过,你觉得其他的体验如何呢

整体还行:
{'f1 (OTH-T)': 0.49999944531299034, 'f1 (OTH-E)': 0.499999250000625,
'f1 (RIV-T)': 0.9127602083405878, 'f1 (RIV-E)': 0.8853459123161158,
'f1 (ORG-T)': 0.4974353962003684, 'f1 (ORG-E)': 0.3870962622274919,
'f1 (DAM-T)': 0.4946231661468389, 'f1 (DAM-E)': 0.34782558034091565,
'f1 (HYD-T)': 0.7386358645406153, 'f1 (HYD-E)': 0.7878782442611042,
'f1 (RES-T)': 0.9535227355230556, 'f1 (RES-E)': 0.935896923981201,
'f1 (TER-T)': 0.5796402273301856, 'f1 (TER-E)': 0.564971252833273,
'f1 (PER-T)': 0.5384610259702189, 'f1 (PER-E)': 0.5185179807960941,
'f1 (LOC-T)': 0.8544463982162634, 'f1 (LOC-E)': 0.8132775079056985,
'f1 (LAK-T)': 0.8727267723457396, 'f1 (LAK-E)': 0.8571423540505576,
'loss': 23.176748}
这是一个水利相关实体识别的结果,可以考虑在结果中加一个整体的平均指标

from unif.

geyingli avatar geyingli commented on June 1, 2024

@wangbq18 您好,你的两个问题都已圆满解决,测试通过

from unif.

wangbq18 avatar wangbq18 commented on June 1, 2024

@wangbq18 您好,你的两个问题都已圆满解决,测试通过

强!

from unif.

Related Issues (10)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.