在这个PyTorch模型中,我有两个数据流,两个不同的模式同时输入到模型中。数据流是顺序数据块。所以我有情态一M1 = [[1,1,1,1],[2,2,2,2],[3,3,3,3],[4,4,4,4],[5,5,5,5]]
和情态二M2 = [[11,11,11,11],[22,22,22,22],[33,33,33,33],[44,44,44,44]]
。我想用一个系统来训练这个模型,在训练过程中,成批的顺序数据将随机地包含部分或全部信息
因此,在训练期间将有三种可能性:M1
和M2
将有其完整的顺序数据,或者将对M1进行剪裁,这意味着顺序数据信息将被设置为零(例如M1 = [[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]
),而M2
将有其完整的顺序数据信息,或者M2
将被剪裁,这意味着M2
中的顺序数据信息将设置为零,而M1
将具有其完整的顺序数据信息
是否有任何PyTorch函数可以自动为我实现这一点,或者有人知道实现这一点的好方法吗
设
M1
和M2
为训练用2D张量或3D批处理张量,设p1
、p2
和p3
为M1、M2或两者均不为零的概率:作为次要注释,如果可能的话,您可能需要考虑将任何数据删除的模式归零。你并不想让你的人际网络知道零值有任何意义,你有学习的风险
根据模型的结构,这可能是可行的。例如,如果
M1
由一个网络分支处理,而M2
由另一个分支处理,则可以进行约束,以便损耗仅通过接收非零输入的分支反向传播。但对于其他网络结构,这可能是不可能的相关问题 更多 >
编程相关推荐