【已解决】Keras:FailedPreconditionError: Attempting to use uninitialized value training/Adam/Variable_35

在Ubuntu 18.04上,使用Anaconda3和Keras进行训练时遇到了FailedPreconditionError。尝试了更新Anaconda、更换优化器以及尝试多种初始化变量的方法,如global_variables_initializer()和local_variables_initializer(),但问题仍未解决。最终通过特定操作成功解决了此错误。
摘要由CSDN通过智能技术生成

问题描述

以前的配置为cuda==8.0tensorflow==1.14keras==2.2.4
随着集群的驱动升级,操作系统为ubuntu18.04,anaconda3使用的安装包没变Anaconda3-5.2.0-Linux-x86_64.sh,配置改为

版本
cuda 9.0
cudnn 7.6.0
tensorflow 1.9.0
keras 2.2.4

使用Keras训练时遇到以下问题

tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value training/Adam/Variable_35
	 [[Node: training/Adam/Variable_35/read = Identity[T=DT_FLOAT, _class=["loc:@training/Adam/Assign_10"], _device="/job:localhost/replica:0/task:0/device:GPU:0"](training/Adam/Variable_35)]]
	 [[Node: loss/add_4/_261 =
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
根据提供的错误信息,出现了一个关于Keras的错误前提条件(Failed precondition):找不到变量`bn4f_branch2a/beta`。 根据错误信息来看,问题出现在命名为`bn4f_branch2a`的层的`beta`变量上。Keras中的层的命名通常遵循一定的命名规则,这里`bn4f_branch2a`可能代表的是一个批归一化(Batch Normalization)层。 批归一化是深度学习中常用的技术之一,用于加速神经网络的训练过程并提高模型的性能。该操作包括对输入数据进行归一化处理,以确保数据在激活函数的输入范围内。在Keras中,每个批归一化层都包含多个参数/变量,如`beta`、`gamma`、`moving_mean`和`moving_variance`等。 出现找不到`bn4f_branch2a/beta`的错误可能有以下几个原因: 1. 模型中没有命名为`bn4f_branch2a/beta`的批归一化层,可能是拼写错误或者网络结构中未正确定义该层。 2. 在训练过程中,由于某些原因导致`bn4f_branch2a/beta`的变量未被正确加载,例如模型加载时出现了问题。 3. 数据在训练过程中通过该批归一化层时,维度匹配出现了错误,导致无法正确找到对应的变量。 解决这个错误,首先应该检查代码中是否正确定义了`bn4f_branch2a/beta`的批归一化层。如果模型结构正确,可以尝试重新加载模型或者使用其他方法来验证输入数据和网络结构的一致性,确保变量维度匹配。 总之,根据错误信息,我们可以推断出问题出现在找不到`bn4f_branch2a/beta`变量上,可能是由于模型结构、加载过程或者数据维度不一致等原因导致的。解决这个问题的关键是仔细检查代码,确保正确定义模型并在训练和推断过程中正确加载和使用模型。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值