tensorflow.saved_model.save
Modelimi KaydedilmişModel biçimindeki işlevi kullanarak kaydedersem, daha sonra bu modelde hangi Tensorflow Ops'un kullanıldığını nasıl alabilirim? Model geri yüklenebileceğinden, bu işlemler grafikte saklanır, tahminim dosyadadır saved_model.pb
. Bu protobuf (tüm model değil) yüklersem protobuf'un kütüphane kısmı bunları listeler, ancak bu şimdilik belgelenmemiş ve deneysel bir özellik olarak etiketlenmemiştir. Tensorflow 1.x'te oluşturulan modeller bu parçaya sahip olmayacak.
Öyleyse , Kaydedilmiş Mod modelindeki bir modelden kullanılmış İşlemlerin (Beğen MatchingFiles
veya WriteFile
) bir listesini almanın hızlı ve güvenilir bir yolu nedir?
Şu anda her şeyi dondurabiliyorum, olduğu gibi tensorflowjs-converter
. Ayrıca desteklenen İşlemleri kontrol ederler. Modelde bir LSTM olduğunda bu şu anda çalışmaz, buraya bakın . Operasyonlar kesinlikle orada olduğundan, bunu yapmanın daha iyi bir yolu var mı?
Örnek bir model:
class FileReader(tf.Module):
@tf.function(input_signature=[tf.TensorSpec(name='filename', shape=[None], dtype=tf.string)])
def read_disk(self, file_name):
input_scalar = tf.reshape(file_name, [])
output = tf.io.read_file(input_scalar)
return tf.stack([output], name='content')
file_reader = FileReader()
tf.saved_model.save(file_reader, 'file_reader')
Bu durumda en azından aşağıdakileri içeren tüm Ops çıktılarında bekleniyor:
ReadFile
burada tarif edildiği gibi- ...
saved_model
Son örneğinizdeki değişken nedir ? tf.saved_model.load('/path/to/model')
Save_model.pb dosyasının protobuf'unun sonucu veya yüklenmesi.
saved_model.pb
, bunu bir olduğunutf.GraphDef
ya da birSavedModel
protobuf mesajı? Eğer birtf.GraphDef
çağrıgd
varsa, ile kullanılan ops listesini alabilirsinizsorted(set(n.op for n in gd.node))
. Yüklü bir modeliniz varsa, bunu yapabilirsinizsorted(set(op.type for op in tf.get_default_graph().get_operations()))
. Eğer bir iseSavedModel
, ondan alabilirsiniztf.GraphDef
(örn.saved_model.meta_graphs[0].graph_def
).