keras运行时,遇到的一个oserror问题

问题描述:

   verbose=1, validation_data=(x_test, y_test))
  File "C:\Users\ASC2017\AppData\Local\Programs\Python\Python35\lib\site-packages\keras\models.py", line 960, in fit
    validation_steps=validation_steps)
  File "C:\Users\ASC2017\AppData\Local\Programs\Python\Python35\lib\site-packages\keras\engine\training.py", line 1657, in fit
    validation_steps=validation_steps)
  File "C:\Users\ASC2017\AppData\Local\Programs\Python\Python35\lib\site-packages\keras\engine\training.py", line 1219, in _fit_loop
    callbacks.on_batch_end(batch_index, batch_logs)
  File "C:\Users\ASC2017\AppData\Local\Programs\Python\Python35\lib\site-packages\keras\callbacks.py", line 109, in on_batch_end
    callback.on_batch_end(batch, logs)
  File "C:\Users\ASC2017\AppData\Local\Programs\Python\Python35\lib\site-packages\keras\callbacks.py", line 299, in on_batch_end
    self.progbar.update(self.seen, self.log_values)
  File "C:\Users\ASC2017\AppData\Local\Programs\Python\Python35\lib\site-packages\keras\utils\generic_utils.py", line 395, in update
    sys.stdout.flush()
OSError: raw write() returned invalid length 170 (should have been between 0 and 85)

经过自己查资料,发现可能与最近的Windows 10更新有关。我有版本1709(操作系统版本16299.64),

  我认为这可能是unicode字符的返回值(正常长度的两倍)?

  我实际上可以在外部powershell.exe中重现此错误,所以这本身不是Code相关的。

  总的来说,与win10系统、版本有关系,踩中雷区了(本人win10,版本 10.0.16299 版本 16299)

解决方法:
使用win_unicode_console这个包可以解决这个问题。

import win_unicode_console
win_unicode_console.enable()

参考:
https://github.com/Microsoft/vscode/issues/39149
https://stackoverflow.com/questions/47356993/oserror-raw-write-returned-invalid-length-when-using-print-in-python

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值