擅长:python、mysql、java
<p>错误是说,你计算的RHS生成了一个(51,)1d数组,但LHS插槽是(51,1),一个2d。广播可以将(51,)改为(1,51),但不能改为(51,1)。在</p>
<blockquote class="spoiler">
<p> It that's not clear, I'd suggest a review of basic numpy documentation. Understanding dimensions, shapes and broadcasting are fundamental.</p>
</blockquote>
<p>下一步是了解维度的来源。在</p>
<p><code>X_train</code>创建为<code>(num_samples,len_time+1,dim_data)</code>,和<code>Y_train</code>个副本。因此<code>Y_train[k]</code>具有<code>(len_time+1,dim_data)</code>的形状,因此是2d(51,1)。对<code>x</code>相同</p>
<p>RHS有2个与广播兼容的项,并且由于<code>dot</code>和而产生(51,)。在</p>
<pre><code>x.dot(beta_1)+(np.roll(x,1,axis=0)).dot(beta_2)
(51,1) dot ((1,) => (51,)
</code></pre>
<p>要真正修复此问题,您需要使用大于1的<code>dim_data</code>。如果是1,你可以只挤出维度,但如果第三维度更大,那就没用了。在</p>
<p>为什么当RHS用<code>dot</code>产品从<code>x</code>中删除最后一个维度时,<code>Y_train</code>初始化为3d?在</p>