2016-08-14 23 views
7

Değişkenleri ve durumlarını bir kontrol noktasından nasıl okuyabilirim?Tensorflow. Denetim noktasında listelenen değişkenler

Ben autoencoders ile çalışıyorum ve benim kontrol noktası yani kodlayıcı, dekoderi, iyileştirici vb Ben kodlamaları ile oyalanmak istiyor ve bu nedenle benim değerlendirme modunda şebekenin sadece dekoder kısmını gerekir ağının tam halini içerir.

Aynı soru daha soyut bir şekilde: Başka bir modelde yeniden kullanmak için varolan denetim noktasından yalnızca belirli değişkenleri okuyabilir miyim?

Sadece değişkenimi buna uygun olarak adlandırmalı mıyım? Veya böyle bir şey almanın bir yolu vardır:

w_init = read_from_state(state_location, var_name) 

def read_from_state(state_location, var_name): 
    # the magic goes here 
    pass 

cevap

14

Saklanan tüm değişkenleri görmenizi sağlar checkpoint_utils.py yılında list_variables yöntem var. Bununla birlikte, kullanım durumunuz için, bir Tasarruf ile geri yüklenmek daha kolay olabilir. Üste | Kontrol noktasını kaydettiğinizde değişkenlerin isimlerini biliyorsanız, yeni koruyucu oluşturabilir ve bu isimleri yeni Variable nesnelerine (muhtemelen farklı isimlerle) yeni nesnelere başlatabileceğini söyleyebilirsiniz. Bu, bir subset of variables geri yüklemesini seçmek için CIFAR örneğinde kullanılır. (Belirtilmişse, ya da sadece bir tane), içerikleriyle birlikte tüm denetim noktası tensörleri yazdırmak olacağını, dökumanın

0

başka yolu da içinde Choosing which Variables to Save and Restore bakınız:

from tensorflow.python.tools import inspect_checkpoint as inch 
inch.print_tensors_in_checkpoint_file('path/to/ckpt', '', True) 
""" 
Args: 
    file_name: Name of the checkpoint file. 
    tensor_name: Name of the tensor in the checkpoint file to print. 
    all_tensors: Boolean indicating whether to print all tensors. 
""" 

Her zaman tensör içeriğini yazdırır.

Ve biz ona iken, burada önceki yanıt önerdiği, checkpoint_utils nasıl kullanılacağı geçerli:

from tensorflow.contrib.framework.python.framework import checkpoint_utils 
    var_list = checkpoint_utils.list_variables('path/to/ckpt') 
    for v in var_list: print(v)