计算机视觉RANZCR CLiP比赛:Effientnet kaggle baseline code学习

代码技术:

采用tensorflow tfrecord
tf.io.FixedLenFeature:定常的特征
代码里面使用这个形成LABELED_TFREC_FORMAT
解析一个Example原型。
tf.io.parse_single_example函数.
dataset.map:
https://www.it610.com/article/1290807790352277504.htm
简单的可以理解为,map的参数是一个函数,而这个函数的参数是固定的。就是和你的dataset的内容是完全一致的。
这是一个按规则对数据集进行处理的函数,在load_dataset,加载train和val的load_train_dataset里面都有用到。
参数:
k_fold法fold数为5.
lr_scheduler = tf.keras.callbacks.ReduceLROnPlateau(monitor = ‘val_auc’,
factor = 0.1,
patience = 2,
verbose = VERBOSE,
mode = ‘max’)
这里的mode要与monitor对应

unbatch()
将第一个维度,通常是batch_size所在的维度消灭掉,元素按次序排列
elements = [ [1, 2, 3], [1, 2], [1, 2, 3, 4] ]
dataset = tf.data.Dataset.from_generator(lambda: elements, tf.int64)
dataset = dataset.unbatch()
list(dataset.as_numpy_iterator())
[1,2,3,1,2,1,2,3,4]

整体思路

在函数read labeled tfrecord将用于分类的标签,转化成了float32形式,并且stack了他们
count data items 将所有tfrec 文件当中的文件的个数都统计一下以得到一个总和
load dataset
按规则获得这个数据集,他是按文件名来获得的,规则就是上面read labeled tf record
然后这个数据集内容就是那个函数的返回值
最后,统计了一下,一共有多少张图片也采用了一个非常好用的函数
接下来使用统计一些指标的一个非常好用的函数mean_roc auc:roc,auc
返回他们这两个指标的平均值。

之后进入代码的关键位置:kfold法

在kfold循环中,每一轮生成用相关函数训练和测试的数据集,注意在这里再次采用map
法,去掉了ID。clear session后,得到模型,然后按一些标准定义checkpoint:采用验证机上的损失来监视,当这个损失最小的时候,就认为是最好的,然后记录下来。
然后定义了checkpoint lr scheduler等,他们使用的都是验证集上的指标都很看重这个验证集。
之后训练模型,
按照其中的注释,应该可以确定,之后在所有的fold当中,选了一个最好的,然后去做预测并且预测的时候使用了TTA。

为能够复现结果,有一个非常好用的函数seed-everything,

重点在于算法和代码,而不在于使用的任何的平台框架和工具。

https://www.kaggle.com/ragnar123/ranzcr-efficientnetb6-baseline

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值