You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Colab Pro+训练DL模型时出现Transport endpoint is not connected错误求助

Google Colab Pro+训练深度学习模型时「Transport endpoint is not connected」错误解决方案

问题背景

我是Google Colab Pro+用户,训练深度学习模型时总会触发「Transport endpoint is not connected」错误。使用Pro版本时就出现过该问题,升级到Pro+后依然未解决。代码运行3-4小时左右必然出错,已尝试用JavaScript维持运行时在线,但问题依旧。

完整错误信息:

Traceback (most recent call last):
  File "/usr/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
 18% 54466/300000 [3:57:19<17:49:51,  3.83it/s]
Traceback (most recent call last):
  File "/content/drive/MyDrive/Ub4D/exp_runner.py", line 998, in <module>
  File "/content/drive/MyDrive/Ub4D/exp_runner.py", line 257, in train
  File "/usr/local/lib/python3.10/dist-packages/torch/utils/tensorboard/writer.py", line 391, in add_scalar
    self._get_file_writer().add_summary(summary, global_step, walltime)
  File "/usr/local/lib/python3.10/dist-packages/torch/utils/tensorboard/writer.py", line 113, in add_summary
    self.run()
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/event_file_writer.py", line 244, in run
    self.add_event(event, global_step, walltime)
  File "/usr/local/lib/python3.10/dist-packages/torch/utils/tensorboard/writer.py", line 98, in add_event
    self._run()
    self.event_writer.add_event(event)
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/event_file_writer.py", line 117, in add_event
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/event_file_writer.py", line 275, in _run
    self._record_writer.write(data)
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/record_writer.py", line 40, in write
    self._async_writer.write(event.SerializeToString())
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/event_file_writer.py", line 171, in write
    self._writer.write(header + header_crc + data + footer_crc)
  File "/usr/local/lib/python3.10/dist-packages/tensorflow/python/lib/io/file_io.py", line 101, in write
    self._check_worker_status()
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/event_file_writer.py", line 212, in _check_worker_status
    self._writable_file.append(
    raise exception
tensorflow.python.framework.errors_impl.FailedPreconditionError: exp/Cactus/paper_config/logs/events.out.tfevents.1691166619.f28574666dfe.12707.0; Transport endpoint is not connected
  File "/usr/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/event_file_writer.py", line 244, in run
    self._run()
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/event_file_writer.py", line 275, in _run
    self._record_writer.write(data)
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/record_writer.py", line 40, in write
    self._writer.write(header + header_crc + data + footer_crc)
  File "/usr/local/lib/python3.10/dist-packages/tensorflow/python/lib/io/file_io.py", line 101, in write
    self._writable_file.append(
tensorflow.python.framework.errors_impl.FailedPreconditionError: exp/Cactus/paper_config/logs/events.out.tfevents.1691166619.f28574666dfe.12707.0; Transport endpoint is not connected

解决方案

该错误本质是Colab运行时与Google Drive的挂载连接超时中断,导致无法写入TensorBoard日志等文件。以下是有效解决方法:

  • 将数据与输出移至Colab本地磁盘
    避免直接读写挂载的Drive文件,先把数据集、代码复制到/content目录,训练日志、模型checkpoint先存本地,结束后再同步回Drive。示例命令:

    # 复制代码到本地
    cp -r /content/drive/MyDrive/Ub4D /content/
    # 训练完成后同步结果回Drive
    cp -r /content/Ub4D/exp /content/drive/MyDrive/Ub4D/
    
  • 捕获连接异常并重新挂载Drive
    在代码中用try-except块包裹文件写入操作,捕获FailedPreconditionError时重新挂载Drive并初始化相关写入对象:

    from google.colab import drive
    import tensorflow as tf
    from torch.utils.tensorboard import SummaryWriter
    
    def safe_add_scalar(writer, tag, scalar_value, global_step):
        try:
            writer.add_scalar(tag, scalar_value, global_step)
        except tf.errors.FailedPreconditionError:
            # 重新挂载Drive
            drive.mount('/content/drive', force_remount=True)
            # 重新初始化TensorBoard writer
            writer = SummaryWriter('/content/drive/MyDrive/Ub4D/exp/Cactus/paper_config/logs')
            writer.add_scalar(tag, scalar_value, global_step)
    
  • 禁用TensorBoard异步写入
    异步写入会加剧Drive连接不稳定问题,改用同步写入模式,初始化writer时设置flush_secs=1:

    from torch.utils.tensorboard import SummaryWriter
    
    # 每1秒同步刷新一次日志
    writer = SummaryWriter('/content/drive/MyDrive/Ub4D/exp/Cactus/paper_config/logs', flush_secs=1)
    
  • 降低Drive读写频率
    用Colab本地临时存储(/tmp或/content)保存训练中间文件,仅在关键节点(如每10个epoch)将checkpoint同步到Drive,减少挂载连接的压力。


内容的提问来源于stack exchange,提问作者Albert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 04:12:03