Tensorflow 如何初始化Py2D的均值和方差?
我正在将TensorFlow模型转换为Pytorch。我想用TensorFlow模型初始化BatchNorm2d的均值和方差。 我是这样做的:Tensorflow 如何初始化Py2D的均值和方差?,tensorflow,pytorch,Tensorflow,Pytorch,我正在将TensorFlow模型转换为Pytorch。我想用TensorFlow模型初始化BatchNorm2d的均值和方差。 我是这样做的: bn.running_mean = torch.nn.Parameter(torch.Tensor(TF_param)) 我得到了这个错误: RuntimeError: the derivative for 'running_mean' is not implemented 但is适用于bn.weight和bn.bias。有没有办法用我预先训练好的T
bn.running_mean = torch.nn.Parameter(torch.Tensor(TF_param))
我得到了这个错误:
RuntimeError: the derivative for 'running_mean' is not implemented
但is适用于bn.weight
和bn.bias
。有没有办法用我预先训练好的Tensorflow模型初始化均值和方差?Pytorch中是否有类似于移动平均值初始值设定项和移动方差初始值设定项的东西
谢谢 批次标准层的运行平均值和方差不是
nn.参数,而是该层的一个参数
我认为你可以简单地分配一个torch.tensor
,无需在其周围环绕nn.参数。批次标准层的运行平均值和方差不是nn.参数,而是该层的一个参数
我想你可以简单地分配一个torch.tensor
,而不需要在它周围包装nn.Parameter
。WoW!成功了!非常感谢。顺便说一句,如果我冻结bn参数(停止bn更新),则running_意味着和running_var
不会改变。运行的_均值和运行的_var将直接保存在模型中。我说得对吗?抱歉,英文表达不正确。@han.liu批处理规范运行统计信息在正向传递时更新,而不是由优化器更新。要在训练期间冻结跑步统计信息,请将每个批次标准层的动量设置为零。或者,如果模型处于评估模式,运行统计信息将不会更新。哇!成功了!非常感谢。顺便说一句,如果我冻结bn参数(停止bn更新),则running_意味着和running_var
不会改变。运行的_均值和运行的_var将直接保存在模型中。我说得对吗?抱歉,英文表达不正确。@han.liu批处理规范运行统计信息在正向传递时更新,而不是由优化器更新。要在训练期间冻结跑步统计信息,请将每个批次标准层的动量设置为零。或者,如果模型处于评估模式,则不会更新运行统计信息。