9月7日 Warming Up 总结

在一次算法竞赛中,参与者详细记录了比赛经历,包括遇到的问题、解决策略和反思。面对难题,团队成员间有效沟通和算法选择成为关键。通过调整策略和深入讨论,队伍最终成功解决了部分问题,但同时也认识到在比赛中保持冷静、充分测试代码的重要性。文章总结了比赛过程中的得失,为后续训练提供了宝贵的经验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第二次打这种联赛,希望不要像上次一样……

开场读题,我读完A题有一种可做的感觉,就打算先把头文件啊文件输入什么的弄好再研究。之后细细一想,跟以前遇到的一些问题相似,但是我不会呀,正好C有人过了,就先敲C,8分钟的时候过了。

然后我决定先放下A题读别的,读完B题又有了可做的错觉。K题也有人过了,hq 读完觉得是到几何的模板题,所以我下来想B。后来想到一个push_front()的拓扑的方法,K题WA了之后我上去敲,结果发现不可行,修修改改也不能过样例。

然后就陷入了僵局,K题调不出,B题也找不到正确的做法,场上大部分队也都还是1题。苦闷了许久,终于决心放下这道题了,改去看H题,因为特殊的性质,很容易就想到统计数目的算法,但是弄错了一个地方,导致反了过来,数目相等时输出倒数第二个字符,还以为是别的问题,改了几次交了几次依然WA。第五次终于过了,巧的是K题改了精度也过了……

现在只有陈队长是5题,其他都是3题或以下,ss读完E之后觉得是道线段树,但是嫌太麻烦,就考虑有没有别的做法,想不出来,就还是用线段树的方法。我读F题,幸运地没有仔细看hint(不然可能就要纠结很久错误的hint了),确定了题意时候就跟hq讨论。因为F题构造解不容易,但是判断一个解是否可行是可以的,而且又有单调性,所以打算二分答案。

ss的E因为数组开小RE了两次,就打印了代码让我先做F。本来不想用map的,怕T,但是想不到什么好做法就硬着头皮敲完交了,结果就真T了。又加了几个剪枝,还是T,而且自己跑一组极限数据就要16秒。

因为之前用并查集做过几道查最近剩余点的题,所以想到这道题也可以用并查集来替换map,本来不报多大希望,结果居然快了10倍,充满信心地交,还是T了……这时限真的可行吗……原来这道题的时限是10s的,陈队长T了之后就改成30s,然后他们就20s过了。为什么不再改大点呢?

ss的E终于过了(就是改了数组大小而已嘛),我的F还T着。hq突然说是不是不用二分,我第一反应是说梦话呢吧,但仔细想想确实靠谱,反正都是选最小的,统计用了几种颜色就行了。改了之后果真过了,8s,不改时限也能过呢。

然后就没有然后了,大家都觉得剩下的题太难,都消极比赛了……


最后三个队5题,我们自然是最后的,罚时是陈队长的两倍……这一场只有C这签到题是1A的,其它都WA了几次。如果我不是一直不想放开B的话,应该还能早点敲别的题;而H能跟ss说清楚一点的话,可能就会发现自己弄错的地方了。比起前几场训练又不够淡定了,敲完总想交,总以为对,下次还是要多测一些,多讨论一下算法吧。

TensorFlow中的`fit_warmingup`并不是一个官方的API方法,但`warmup`在训练深度学习模型时是一个常见的概念,特别是在使用学习率调度器(learning rate scheduler)时。`warmup`指的是在训练初期,逐步增加学习率的过程,以帮助模型更好地收敛。 以下是如何在TensorFlow中使用`warmup`的一个示例: ```python import tensorflow as tf class WarmupScheduler(tf.keras.callbacks.Callback): def __init__(self, warmup_steps, initial_lr, target_lr): super(WarmupScheduler, self).__init__() self.warmup_steps = warmup_steps self.initial_lr = initial_lr self.target_lr = target_lr def on_train_begin(self, logs=None): self.current_step = 0 self.model.optimizer.lr.assign(self.initial_lr) def on_train_batch_begin(self, batch, logs=None): if self.current_step < self.warmup_steps: lr = self.initial_lr + (self.target_lr - self.initial_lr) * self.current_step / self.warmup_steps self.model.optimizer.lr.assign(lr) self.current_step += 1 # 示例模型 model = tf.keras.Sequential([ tf.keras.layers.Dense(64, activation='relu', input_shape=(100,)), tf.keras.layers.Dense(1) ]) model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.001), loss='mse') # 训练模型并使用warmup model.fit(x_train, y_train, epochs=10, callbacks=[WarmupScheduler(warmup_steps=1000, initial_lr=0.0001, target_lr=0.001)]) ``` 在这个示例中,`WarmupScheduler`类在训练开始时将学习率设置为初始值,并在前`warmup_steps`步中逐步增加到目标学习率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值