feng-spinning / onn-simulation

A program using pytorch to simulate diffracive deep nerual network (D2NN), containing updates (relative to the original paper) of incoherent propagation, parallel computation, nonlinear activation, changing of propagating distance.
15 stars 4 forks source link

d2nn中相位板的负值问题 #1

Open Fan1313 opened 4 months ago

Fan1313 commented 4 months ago

您好 我再阅读相关文献和代码后,产生了一个疑问。在Readme中我发现经过D2NN训练后得到的phase是存在负数的,那么在实际实验中该如何处理这个负值呢? 是在网络训练的时候就限制phase只能学习0-2派之间的数值,来确保phase的取值范围和非负性吗? 还是将训练后得到的带负数的phase进行一个一一对应的映射变换,使其取值范围变换到0-2派?

feng-spinning commented 4 months ago

你好!负数不会给衍射系统带来任何问题。如果您需要打印加工相位板,只需要在phase上统一加上2n \pi达到正值即可。如果您使用SLM,只需要将结果wrap到0-2pi(其实也是$\pm 2n\pi$)就可以得到同样的衍射效果。

Fan1313 commented 4 months ago

谢谢您的解答!我刚接触这个方向,所以有些困惑,现在明白了, 再次感谢您的解释!