Tensorflow在Windows环境下Print错误解决方案

问题:Tensorflow在Windows环境下,不仅是PowerShell,还是CMD以及Visual Studio Code,执行时,会出现Print的输出错误:

oserror: raw write() returned invalid length... ...

错误的原因可能是由于Windows自身的Unicode中存在的Bug所造成,参考以下文章:

https://stackoverflow.com/questions/47356993/oserror-raw-write-returned-invalid-length-when-using-print-in-python

https://github.com/Microsoft/vscode/issues/39149#issuecomment-347260954


解决问题的方案:

方案A:在运行深度学习的循环训练程序代码中,不使用Print输出当前学习的状态,而是将学习的状态信息,利用文件写入的形式,写到csv文件当中,例如:

file = open("record.csv", "w")

file.write("iter,total_loss,rpn_loss_cls,rpn_loss_box,loss_cls,loss_box")

while.......

    ......

    if iter % (cfg.FLAGS.display) == 0:

        file.write("%d,%f,%f,%f,%f,%f\n" % (iter, total_loss, rpn_loss_cls, rpn_loss_box, loss_cls, loss_box))

file.close()

方案B:anaconda环境执行编程好的Python深度学习程序,原因是根据问题报告,只有CMD,PowerShell以及Visual Studio Code的Windows原生编程以及程序执行环境才会出现这个问题

方案A与方案B哪个能够正确有效地解决这个问题,需要进一步确认

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容