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

TensorFlow训练完成后无法找到保存的模型权重文件求助

问题分析与解决办法

1. 未提前创建保存目录

代码仅定义了保存目录路径,但未确保目录存在。若./model目录不存在,TensorFlow保存权重时可能静默失败,不会抛出明确错误。

修改方式:在定义保存路径前添加目录创建逻辑:

save_dir = './model'
# 确保保存目录存在,不存在则自动创建
os.makedirs(save_dir, exist_ok=True)
encoder_prefix = os.path.join(save_dir, "encoder_weights")
decoder_prefix = os.path.join(save_dir, "decoder_weights")

2. 最佳损失判断逻辑错误

  • 初始best_total_loss = 0.0071,若首个epoch的平均损失(total_loss / N_BATCH)大于0.0071,将直接跳过权重保存。
  • 更新best_total_loss时错误赋值为total_loss(未除以N_BATCH),导致后续epoch的判断逻辑完全混乱,几乎无法触发保存。

修改方式:修正损失比较与更新逻辑:

# 初始值设为极大值,确保首次训练会触发保存
best_total_loss = float('inf')

# ... 训练循环内 ...

epoch_avg_loss = total_loss / N_BATCH
print('Epoch {} Loss {:.4f}'.format(epoch + 1, epoch_avg_loss))

if best_total_loss > epoch_avg_loss:
    best_total_loss = epoch_avg_loss  # 保存平均损失,而非总损失
    encoder.save_weights(encoder_prefix)
    decoder.save_weights(decoder_prefix)
    print('Saving weights at epoch {} with Loss {:.4f}'.format(epoch + 1, epoch_avg_loss))

3. 权重保存格式设置(可选)

若使用较新版本TensorFlow,save_weights默认保存为TensorFlow检查点格式(多文件),而非单一.h5文件。若需要.h5格式,需指定保存格式参数:

修改方式:

encoder.save_weights(encoder_prefix, save_format='h5')
decoder.save_weights(decoder_prefix, save_format='h5')

4. 权限排查(可选)

若上述修改后仍无法保存,需检查当前用户对./model目录是否有写入权限,可手动创建目录后再运行训练。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 09:50:15