处理后的数据是实时视频(一堆连续的帧),所有这些都需要以DX12缓冲区结束。
如果数据在训练期间被复制到系统内存,我并不在意,但在评估期间,它必须保留在GPU上。
我会在python中单独训练网络,允许高延迟,但经过训练后,我会完全在GPU上使用它(因为我的帧已经存在)。从我的角度来看(使用GPGPU编程经验,但Tensorflow没有那么多)有两种方法可以做到这一点:
从python(权重和偏差)中训练模型中提取参数,并将它们上传到GPU上具有相同网络拓扑并在那里运行的c ++程序。它的行为应该像它所训练的Tensorflow网络一样。
在c ++程序中也使用Tensorlow,只需传递输入和输出的缓冲区句柄(用GPGPU的方式),然后与DX12交互(因为我需要评估才能在这里结束) )。
想知道这些选项是否可行,如果可行,哪一个更好,为什么?
如果我遗漏任何不清楚的地方,请在评论中告诉我。