U-Net模型本地环境预测无结果,Colab环境正常求解原因
结合你给出的代码,核心差异和问题点主要集中在这几个方面:
路径不匹配
Colab代码里用的是云端挂载路径/content/drive/...,本地环境不存在这个路径。运行前必须把glob.glob的图片路径、load_model的模型路径替换成本地对应的绝对路径(比如D:/project/remake_pic/*.png)或相对路径,否则程序找不到文件,后续步骤自然没有输出。依赖版本不一致
Colab的TensorFlow/Keras、OpenCV、NumPy版本大概率和本地环境不同。如果模型是在Colab的特定版本下训练的,本地版本过低或过高,加载模型时可能静默失败(你加了compile=False会屏蔽部分编译报错),导致predict无法执行。可以在两边分别运行以下命令对比版本,尽量对齐:import tensorflow as tf import cv2 import numpy as np print(tf.__version__, cv2.__version__, np.__version__)数据加载异常
本地的图片可能存在损坏、格式不兼容,或者数量不足2124张。Colab里的图片是完整的,但本地image_names_subset可能为空,或者部分图片用cv2.imread读取失败(返回None),转成数组时会出现隐性问题。可以在本地代码里加一行print(len(images))查看实际加载的图片数量,再逐一检查异常图片。硬件资源不足导致假死
本地如果没有GPU加速,用CPU跑2124张图的预测会非常缓慢,看起来像是“没有输出”,实际是程序还在运行。可以先拿10张图做测试,或者添加进度提示,确认程序是否在正常执行。静默错误未被捕获
本地环境可能有错误抛出但未显示,比如模型加载时的警告、数据类型不匹配。可以给代码加上异常捕获,或者去掉compile=False,查看具体报错:from keras.models import load_model try: model = load_model("本地模型路径.hdf5") y_pred = model.predict(image_dataset) print(y_pred.shape) except Exception as e: print("错误详情:", e)
内容的提问来源于stack exchange,提问作者Xiu

