Keras에서 저장된 샴 모델을로드 할 수없는 이유는 무엇입니까?

Sajad am

저는 개인 Re-ID 시스템을 구축하려고하는데 모델 훈련에 샴 아키텍처를 사용합니다. callbacks.ModelCheckpoint를 사용하여 각 시대에 모델을 저장합니다. 저장된 모델을로드하는 중에 오류가 발생했습니다.

훈련을 위해 VGG16 사전 훈련 된 모델을 사용합니다.

input_shape = (160,60,3)
conv_base = VGG16(weights='imagenet',
                  include_top=False,
                  input_shape=(160, 60, 3))

output = conv_base.layers[-5].output

x=Flatten()(output)
x=Dense(512,activation='relu')(x)
out=Dense(512,activation='relu')(x)

conv_base = Model(conv_base.input, output=out)

for layer in conv_base.layers[:-11]:
    layer.trainable = False

샴 모델 생성 :

# We have 2 inputs, 1 for each picture
left_input = Input((160,60,3))
right_input = Input((160,60,3))

# We will use 2 instances of 1 network for this task
convnet = Sequential([
    InputLayer(input_shape=(160, 60, 3)),
    conv_base
])
# Connect each 'leg' of the network to each input
# Remember, they have the same weights
encoded_l = convnet(left_input)
encoded_r = convnet(right_input)

# Getting the L1 Distance between the 2 encodings
L1_layer = Lambda(lambda tensor:K.abs(tensor[0] - tensor[1]))

# Add the distance function to the network
L1_distance = L1_layer([encoded_l, encoded_r])

prediction = Dense(1,activation='sigmoid')(L1_distance)
siamese_net = Model(inputs=[left_input,right_input],outputs=prediction)

#optimizer = Adam(0.00006, decay=2.5e-4)
sgd = optimizers.RMSprop(lr=1e-4)
#//TODO: get layerwise learning rates and momentum annealing scheme described in paperworking
siamese_net.compile(loss="binary_crossentropy", optimizer=sgd, metrics=['accuracy'])

기차 네트워크 :

checkpoint = ModelCheckpoint('drive/My Drive/thesis/new change parametr/model/model-{epoch:03d}.h5', verbose=1, save_weights_only=False,monitor='val_loss', mode='auto')

newmodel=siamese_net.fit([left_train,right_train], targets,
          batch_size=64,
          epochs=2,
          verbose=1,shuffle=True, validation_data=([valid_left,valid_right],valid_targets),callbacks=[checkpoint])

모델은 각 Epoch에 저장되지만로드 할 때 다음 오류가 발생합니다.

loaded_model= load_model('drive/My Drive/thesis/new change parametr/model/model-001.h5')

오류:

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-6-8de2283b355f> in <module>()
      1 
----> 2 loaded_model= load_model('drive/My Drive/thesis/new change parametr/model/model-001.h5')
      3 print('Load succesfuly')
      4 
      5 #siamese_net.load_weights('drive/My Drive/thesis/new change parametr/weight/model-{epoch:03d}.h5')

7 frames
/usr/local/lib/python3.6/dist-packages/keras/engine/saving.py in preprocess_weights_for_loading(layer, weights, original_keras_version, original_backend, reshape)
    939                                  str(weights[0].size) + '. ')
    940             weights[0] = np.reshape(weights[0], layer_weights_shape)
--> 941         elif layer_weights_shape != weights[0].shape:
    942             weights[0] = np.transpose(weights[0], (3, 2, 0, 1))
    943             if layer.__class__.__name__ == 'ConvLSTM2D':

IndexError: list index out of range

내 코드는 Google Colaboratory에서 실행됩니다. 나는 온라인으로 검색했는데 아마도 샴 아키텍처를 사용했기 때문일 것입니다. 어떤 도움을 주시면 감사하겠습니다!

Sajad am

다음과 같이 네트워크를 생성 할 때 저장된 모델을로드하는 동안 오류가 발생했습니다.

input_shape = (160,60,3)
conv_base = VGG16(weights='imagenet',
                  include_top=False,
                  input_shape=(160, 60, 3))

output = conv_base.layers[-5].output

x=Flatten()(output)
x=Dense(512,activation='relu')(x)
out=Dense(512,activation='relu')(x)

conv_base = Model(conv_base.input, output=out)

for layer in conv_base.layers[:-11]:
    layer.trainable = False

# We have 2 inputs, 1 for each picture
left_input = Input((160,60,3))
right_input = Input((160,60,3))

# We will use 2 instances of 1 network for this task
convnet = Sequential([
    InputLayer(input_shape=(160, 60, 3)),
    conv_base
])

이 문제는 생성 모델을 변경하여 해결되었습니다.

# We have 2 inputs, 1 for each picture
left_input = Input((160,60,3))
right_input = Input((160,60,3))

conv_base = VGG16(weights='imagenet',
                  include_top=False,
                  input_shape=(160, 60, 3))

output = conv_base.layers[-5].output

x=Flatten()(output)
x=Dense(512,activation='relu')(x)
out=Dense(512,activation='relu')(x)

for layer in conv_base.layers[:-11]:
    layer.trainable = False 

convnet = Model(conv_base.input, output=out)

그때:

loaded_model= load_model('drive/My Drive/thesis/new change parametr/model/model-001.h5')
print('Load successfully')

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

OBJ에서로드 할 때 OpenGL이이 모델을 표시 할 수없는 이유는 무엇입니까?

분류에서Dev

특정 저장 프로 시저에 바인딩 된 경우 하위 양식을로드 할 수없는 이유는 무엇입니까?

분류에서Dev

색인 페이지에서이 모델을 모델로 사용할 수없는 이유는 무엇입니까?

분류에서Dev

동적으로 할당 된 메모리 블록에 매우 큰 단일 값을 저장할 수없는 이유는 무엇입니까?

분류에서Dev

tf2가 tf_function 모델을 .pb 파일로 저장할 수없는 이유는 무엇입니까?

분류에서Dev

임베디드 UITableViewController에서 부모 UIViewController에 저장된 메서드를 호출 할 수없는 이유는 무엇입니까?

분류에서Dev

기본 Ubuntu 저장소에서 Mate, Cinnamon 및 Pantheon을 사용할 수없는 이유는 무엇입니까?

분류에서Dev

저장된 모델을 TensorFlow 또는 Keras로 변환하거나로드하는 방법은 무엇입니까?

분류에서Dev

Ubuntu 14.04에서 브라우저로 파일을 업로드 할 수없는 이유는 무엇입니까?

분류에서Dev

Ansible에서 파일을 통해로드 된 vars에 액세스 할 수없는 이유는 무엇입니까?

분류에서Dev

모델 방법을 기본값으로 사용할 수없는 이유는 무엇입니까? 어쨌든 Python / Django 모델에서 self는 무엇입니까?

분류에서Dev

Windows에서 실행중인 exe 및로드 된 dll을 삭제할 수없는 이유는 무엇입니까?

분류에서Dev

내 UIFontDescriptor를 변수에 저장할 수없는 이유는 무엇입니까?

분류에서Dev

내 UIFontDescriptor를 변수에 저장할 수없는 이유는 무엇입니까?

분류에서Dev

TensorFlow 2.x에서 Tensorflow 1.x 저장된 모델을로드하는 방법은 무엇입니까?

분류에서Dev

save_weights에서 저장된 tensorflow 모델을로드하고 예측하는 방법은 무엇입니까?

분류에서Dev

함수 내에서 인수로 전달 된 목록을 수정할 수없는 이유는 무엇입니까?

분류에서Dev

WebSQL에 저장된 데이터를 표시 할 수없는 이유는 무엇입니까?

분류에서Dev

Slick이 Option [String]을 저장할 수없는 이유는 무엇입니까?

분류에서Dev

자바 스크립트를 사용하여 html 데이터 선택기에 저장된이 배열을 반복 할 수없는 이유는 무엇입니까?

분류에서Dev

timeIntervalSince1970 반환 값을 포인터에 저장할 수없는 이유는 무엇입니까?

분류에서Dev

return 문을 return 문이 포함 된 메서드로 대체 할 수없는 이유는 무엇입니까?

분류에서Dev

ColladaLoader에 의해로드 된 모델을 Three.js에 저장하는 방법은 무엇입니까?

분류에서Dev

이전에 "없음"으로 언급 된 변수를 수정할 수없는 이유는 무엇입니까?

분류에서Dev

Windows에서 NAS에 저장된 파일을 복사하려고 할 때 유해 할 수 있다고보고하는 이유는 무엇입니까?

분류에서Dev

JavaScript에서 참조로 전달 된 객체에 null을 설정할 수없는 이유는 무엇입니까?

분류에서Dev

입력을 파일 자체로 사용하는 명령에서 출력을 파일에 저장할 수없는 이유는 무엇입니까?

분류에서Dev

전달 된 객체를 메서드의 새 값에 할당 할 수없는 이유는 무엇입니까?

분류에서Dev

IronPython의 캐시 된 모듈에서 변수를 변경할 수없는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    OBJ에서로드 할 때 OpenGL이이 모델을 표시 할 수없는 이유는 무엇입니까?

  2. 2

    특정 저장 프로 시저에 바인딩 된 경우 하위 양식을로드 할 수없는 이유는 무엇입니까?

  3. 3

    색인 페이지에서이 모델을 모델로 사용할 수없는 이유는 무엇입니까?

  4. 4

    동적으로 할당 된 메모리 블록에 매우 큰 단일 값을 저장할 수없는 이유는 무엇입니까?

  5. 5

    tf2가 tf_function 모델을 .pb 파일로 저장할 수없는 이유는 무엇입니까?

  6. 6

    임베디드 UITableViewController에서 부모 UIViewController에 저장된 메서드를 호출 할 수없는 이유는 무엇입니까?

  7. 7

    기본 Ubuntu 저장소에서 Mate, Cinnamon 및 Pantheon을 사용할 수없는 이유는 무엇입니까?

  8. 8

    저장된 모델을 TensorFlow 또는 Keras로 변환하거나로드하는 방법은 무엇입니까?

  9. 9

    Ubuntu 14.04에서 브라우저로 파일을 업로드 할 수없는 이유는 무엇입니까?

  10. 10

    Ansible에서 파일을 통해로드 된 vars에 액세스 할 수없는 이유는 무엇입니까?

  11. 11

    모델 방법을 기본값으로 사용할 수없는 이유는 무엇입니까? 어쨌든 Python / Django 모델에서 self는 무엇입니까?

  12. 12

    Windows에서 실행중인 exe 및로드 된 dll을 삭제할 수없는 이유는 무엇입니까?

  13. 13

    내 UIFontDescriptor를 변수에 저장할 수없는 이유는 무엇입니까?

  14. 14

    내 UIFontDescriptor를 변수에 저장할 수없는 이유는 무엇입니까?

  15. 15

    TensorFlow 2.x에서 Tensorflow 1.x 저장된 모델을로드하는 방법은 무엇입니까?

  16. 16

    save_weights에서 저장된 tensorflow 모델을로드하고 예측하는 방법은 무엇입니까?

  17. 17

    함수 내에서 인수로 전달 된 목록을 수정할 수없는 이유는 무엇입니까?

  18. 18

    WebSQL에 저장된 데이터를 표시 할 수없는 이유는 무엇입니까?

  19. 19

    Slick이 Option [String]을 저장할 수없는 이유는 무엇입니까?

  20. 20

    자바 스크립트를 사용하여 html 데이터 선택기에 저장된이 배열을 반복 할 수없는 이유는 무엇입니까?

  21. 21

    timeIntervalSince1970 반환 값을 포인터에 저장할 수없는 이유는 무엇입니까?

  22. 22

    return 문을 return 문이 포함 된 메서드로 대체 할 수없는 이유는 무엇입니까?

  23. 23

    ColladaLoader에 의해로드 된 모델을 Three.js에 저장하는 방법은 무엇입니까?

  24. 24

    이전에 "없음"으로 언급 된 변수를 수정할 수없는 이유는 무엇입니까?

  25. 25

    Windows에서 NAS에 저장된 파일을 복사하려고 할 때 유해 할 수 있다고보고하는 이유는 무엇입니까?

  26. 26

    JavaScript에서 참조로 전달 된 객체에 null을 설정할 수없는 이유는 무엇입니까?

  27. 27

    입력을 파일 자체로 사용하는 명령에서 출력을 파일에 저장할 수없는 이유는 무엇입니까?

  28. 28

    전달 된 객체를 메서드의 새 값에 할당 할 수없는 이유는 무엇입니까?

  29. 29

    IronPython의 캐시 된 모듈에서 변수를 변경할 수없는 이유는 무엇입니까?

뜨겁다태그

보관