2

我正在训练一种机器学习算法,并想制作一个 avi 来可视化权重随时间的外观。我把类似的东西放在一起:

aviobj = avifile( 'weights.avi' );
for jj = 1:whatever
  % do some training
  imagesc( ... ); % where '...' is stuff to reshape the weight matrix
  aviobj = addframe( aviobj, getframe );
end;
aviobj = close( aviobj );
implay( 'weights.avi' );

问题是,框架最终看起来像这样: 在此处输入图像描述

数字不应该有那个方向。我在 matlab 中生成的任何 avi 都会发生这种情况。

有什么建议么?

-布赖恩

4

1 回答 1

3

终于有时间回到这个话题了。问题是由于轴。当使用类似imageor的东西时imagesc,它会在图像的底部和左侧添加一条额外的黑色边框线。当您使用getframe时,它只抓取绘制的图像数据,没有黑线。但是,帧本身比图像数据略大。

以下解决它:

aviobj = avifile( 'weights.avi' );
fig = figure;
for jj = 1:whatever
  % do some training
  imagesc( ... ); % where '...' is stuff to reshape the weight matrix
  axis off;
  aviobj = addframe( aviobj, getframe( fig ) );
end;
aviobj = close( aviobj );
implay( 'weights.avi' );

设置axis off修复它。

于 2011-05-05T08:26:37.187 回答