flashfxp上传网站,山东省商务厅网站开发区管理处,手机下载视频网站模板下载失败,新闻门户网站是什么# 理由#
有时在训练自己的模型时#xff0c;如果从头开始训练自己的模型#xff0c; 不但费时费力#xff0c; 有时可能训练了很久#xff0c; 好不容易收敛#xff0c; 发现结果不是太好。 如果能够基于被人 已经训练好的权重#xff0c; 初始化自己的模型。那么在训练…# 理由#
有时在训练自己的模型时如果从头开始训练自己的模型 不但费时费力 有时可能训练了很久 好不容易收敛 发现结果不是太好。 如果能够基于被人 已经训练好的权重 初始化自己的模型。那么在训练自己的模型时会事半功倍。
一. Check Pre-trained Weights
import torch
from icecream import ic
ckpttorch.load(/home/ggl/full_skip.pth)
ic(ckpt.keys()) Output: ic| ckpt.keys(): odict_keys([patch_embed.conv_down.0.weight, patch_embed.conv_down.1.weight, .......................................... import torch
from icecream import ic
tar_ckpttorch.load(/home/ggl/Downloads/224_1k.pth.tar)
ic(tar_ckpt.keys()) Output: ic| tar_ckpt.keys(): dict_keys([epoch, arch, state_dict, optimizer, version, args, amp_scaler, metric]) 根据上面的输出可以看到 保存的权重中的键值对是不一样的。
第一个保存的直接是 ‘state_dict
第二个保存的信息更加全面。 tar_ckpt[state_dict] ,相当于第一个。
--------------------------------------------------- 补充信息 -------------------------------------------------------
补充信息
dict 和 OrderedDictodict都是 Python 中的字典数据结构但它们在维护元素顺序上有所不同。
1. dict字典:
示例
my_dict {a: 1, b: 2, c: 3}
for key, value in my_dict.items(): print(key, value)
在 Python 3.7 之前字典并不保持元素的插入顺序。即当你迭代一个字典时元素的顺序不一定与添加它们的顺序相同。从 Python 3.7 开始字典开始维护元素的插入顺序。但是这是在 CPython 的具体实现上并不是 Python 语言规范的一部分。 在 Python 3.7 及之后的版本中以上代码输出的顺序将是 a, b, c。 2. OrderedDict有序字典:
示例
from collections import OrderedDict
my_ordered_dict OrderedDict([(a, 1), (b, 2), (c, 3)])
for key, value in my_ordered_dict.items(): print(key, value)输出的顺序将始终是 a, b, c。
python
OrderedDict 是 collections 模块中的一个类它从 Python 2.7 开始引入并在 Python 3 中得到了延续。OrderedDict 会维护元素的插入顺序因此当你迭代它时元素的顺序是按照它们被插入的顺序。OrderedDict 的一个重要特性是当你比较两个 OrderedDict 时它们的元素顺序也需要相同。
总的来说如果你需要在迭代时保持元素顺序可以使用 OrderedDict。如果你使用的是 Python 3.7 及更高版本的话普通的字典也会保持插入顺序。 二. Check self-model weights Or self-weights 三. Transfer pre-trained Weights to self-weights Note: 正在完成中....稍后待续