TADT代码问题

Posted qq552048250

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TADT代码问题相关的知识,希望对你有一定的参考价值。

paper:Li X, Ma C, Wu B, et al. Target-Aware Deep Tracking[C]. //CVPR2019

 

调用adam.m时候报错

结构体内容引用自非结构体数组对象。

出错 solver.adam (line 62)
state.m = opts.beta1 * state.m + (1 - opts.beta1) * grad ;

 

原因是因为传递给adam函数的state参数是一个空数据,如果是这种情况应该是传一个0进去,因为adam.m的57行有写

if isequal(state, 0) % start off with state = 0 so as to get default state
  state = struct(‘m‘, 0, ‘v‘, 0, ‘t‘, 0);
end

所以修改cnn_train_dag_ridge函数的374行左右

[net.params(p).value, state.solverStatep] = ...
params.solver(net.params(p).value, state.solverStatep, ...
grad, params.solverOpts, thisLR) ;

这句前增加代码如下:

 if(isempty(state.solverStatep))
            state.solverStatep=0;
        end

  

 

以上是关于TADT代码问题的主要内容,如果未能解决你的问题,请参考以下文章

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

为啥这个代码片段说包含错误?

这个代码片段有啥作用?

如何在Sublime Text中添加代码片段

C++ 代码片段执行

为啥这段代码会泄露? (简单的代码片段)