Gre*_*ung 2 python deep-learning keras
我正在用我自己的数据集的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追溯(最近一次调用是最近一次)----> 1模型= load_model('generator.h5')
D:load_model(文件路径,custom_objects,编译)中的D:\ keras \ engine \ saving.py 262263#设置权重-> 264 load_weights_from_hdf5_group(f ['model_weights'],model.layers)265266如果编译为:
D:load_weights_from_hdf5_group中的D:\ keras \ engine \ saving.py(f,层,重塑)914 original_keras_version,915 original_backend,-> 916 reshape = reshape)917 if len(weight_values)!= len(symbolic_weights):918提高ValueError( '图层#'+ str(k)+
D:\ keras \ engine \ saving.py在preprocess_weights_for_loading中(图层,权重,original_keras_version,original_backend,重塑)555权重= convert_nested_time_distributed(weights)556 elif层。上课。名称在[ '模型', '顺序']: - >权重557 = convert_nested_model(权重)558 559如果original_keras_version == '1':
在convert_nested_model中的D:\ keras \ engine \ saving.py(权重)543 weights = weights [:num_weights],544 original_keras_version = original_keras_version,-> 545 original_backend = original_backend))546 weights = weights [num_weights:] 547 return new_weights
D:\ keras \ engine \ saving.py在preprocess_weights_for_loading中(图层,权重,original_keras_version,original_backend,重塑)555权重= convert_nested_time_distributed(weights)556 elif层。上课。名称在[ '模型', '顺序']: - >权重557 = convert_nested_model(权重)558 559如果original_keras_version == '1':
在convert_nested_model中的D:\ keras \ engine \ saving.py(权重)531 weights = weights [:num_weights],532 original_keras_version = original_keras_version,-> 533 original_backend = original_backend))534 weights = weights [num_weights:] 535
预处理中的D:\ keras \ engine \ saving.py(图层,权重,original_keras_version,original_backend,重塑)673 weights [0] = np.reshape(weights [0],layer_weights_shape)674 elif layer_weights_shape!= weights [0]。形状:-> 675 weights [0] = np.transpose(weights [0],(3,2,0,1))676如果是图层。上课。名称 =='ConvLSTM2D':677权重1 = np.transpose(权重1,(3,2,0,1 ))
c:\ users \ administrator \ appdata \ local \ programs \ python \ python35 \ lib \ site-packages \ numpy \ core \ fromnumeric.py in transpose(a,axes)596597“”“-> 598返回_wrapfunc(a ,“移调”,轴)599600
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 return getattr(obj,method)(* 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
任何意见和建议,将不胜感激。
看起来像下面描述的问题:
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2577 次 |
| 最近记录: |