【问题标题】:Keras:load_model ValueError: axes don't match arrayKeras:load_model ValueError:轴与数组不匹配
【发布时间】:2018-08-21 08:43:10
【问题描述】:

我正在用我自己的数据集使用keras-gan/wgan-gp 示例学习 gan。我保存模型 wgan.generator.save('generator.h5')

wgan.critic.save('critic.h5')

并加载

model = load_model('generator.h5')

model = load_model('critic.h5')

但这仅在第一次运行良好。当我在第二次训练后再次保存模型并运行时

model = load_model('generator.h5')

model = load_model('critic.h5')

再次出现错误:

ValueError Traceback(最近一次调用最后一次) 在 () ----> 1 个模型 = load_model('generator.h5')

D:\keras\engine\saving.py 在 load_model(filepath, custom_objects, compile) 262 263#设置权重 --> 264 load_weights_from_hdf5_group(f['model_weights'], model.layers) 265 266 如果编译:

D:\keras\engine\saving.py in load_weights_from_hdf5_group(f, layers, reshape) 第914章 第915章 --> 916 重塑=重塑) 第917章 第918章

D:\keras\engine\saving.py in preprocess_weights_for_loading(layer, weights, original_keras_version, original_backend, reshape) 555 权重 = convert_nested_time_distributed(权重) 556 elif layer.class.name in ['Model', 'Sequential']: --> 557 权重 = 转换嵌套模型(权重) 558 559 如果 original_keras_version == '1':

convert_nested_model(权重)中的 D:\keras\engine\saving.py 第543章 第544章 --> 545 original_backend=original_backend)) 546 权重 = 权重 [num_weights:] 第547章

D:\keras\engine\saving.py in preprocess_weights_for_loading(layer, weights, original_keras_version, original_backend, reshape) 555 权重 = convert_nested_time_distributed(权重) 556 elif layer.class.name in ['Model', 'Sequential']: --> 557 权重 = 转换嵌套模型(权重) 558 559 如果 original_keras_version == '1':

convert_nested_model(权重)中的 D:\keras\engine\saving.py 第531章 第532章 --> 533 original_backend=original_backend)) 534 权重 = 权重 [num_weights:] 第535章

D:\keras\engine\saving.py in preprocess_weights_for_loading(layer, weights, original_keras_version, original_backend, reshape) 673 权重[0] = np.reshape(权重[0], layer_weights_shape) 第674章 --> 675 权重[0] = np.transpose(权重[0], (3, 2, 0, 1)) 676 if layer.class.name == 'ConvLSTM2D': 677 个权重1 = np.transpose(weights1, (3, 2, 0, 1))

c:\users\administrator\appdata\local\programs\python\python35\lib\site-packages\numpy\core\fromnumeric.py 在转置(a,轴) 596 第597章 --> 598 返回 _wrapfunc(a, 'transpose', 轴) 599 600

c:\users\administrator\appdata\local\programs\python\python35\lib\site-packages\numpy\core\fromnumeric.py in _wrapfunc(obj, method, *args, **kwds) 49 def _wrapfunc(obj, 方法, *args, **kwds): 50 次尝试: ---> 51 返回 getattr(obj, 方法)(*args, **kwds) 52 53 # 如果对象没有 AttributeError 发生

ValueError:轴与数组不匹配`

我正在使用

Python 3.5.3

Keras 2.2.2

h5py 2.8.0

tensorflow-gpu 1.9.0

keras-contrib 2.0.8

Keras-Applications 1.0.4

Keras-Preprocessing 1.0.2

任何意见和建议将不胜感激。

【问题讨论】:

    标签: python keras deep-learning


    【解决方案1】:

    看起来像中描述的问题:

    https://github.com/keras-team/keras/pull/11847

    https://github.com/tensorflow/tensorflow/issues/27769

    虽然该错误尚未修复,但该问题仅在模型中同时存在可训练和不可训练权重时出现。如果您不需要进一步训练模型,您可以通过在保存之前冻结所有权重来解决此问题:

    from keras import models
    
    def freeze(model):
        """Freeze model weights in every layer."""
        for layer in model.layers:
            layer.trainable = False
    
            if isinstance(layer, models.Model):
                freeze(layer)
    

    【讨论】:

    • 保存tensorflow.python.framework.errors_impl.FailedPreconditionError: Error while reading resource variable final_output/bias from Container: localhost. This could mean that the variable was uninitialized. Not found: Container localhost does not exist. (Could not find resource: localhost/final_output/bias) [[{{node final_output/BiasAdd/ReadVariableOp}}]] [[{{node final_output/Sigmoid}}]] 后运行model.predict() 时,tf 1.3.0 和keras 2.4 出现以下错误@ 任何分辨率?
    • 在尝试model.load_weights() 时遇到了与axes don't match array 相同的问题。修复了model.trainable = True的问题。
    【解决方案2】:

    尝试将 keras 版本降级到 2.1.5。它为我解决了这个问题。

    【讨论】:

    • 即使在降级到 2.1.5 后我也有同样的错误。我可以加载旧的权重,但不能加载当前训练的权重。
    【解决方案3】:

    您是否在同一台机器上执行训练和预测? 将 tensorflow 的版本更改为训练和预测机器的相同版本解决了我的问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-31
      • 2018-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多