2016-04-05 14 views
2

Başlıkta belirtildiği gibi, mevcut operasyonlar ve tensör işlemleri ile tensorflow'da özel bir katman uygulamak istiyorum. Python'da, tıpkı teano'da yapılabilecekler gibi yapabileceğimi merak ediyorum. Bu katmanda, girdi bazı matrisler olabilir, parti girdisi ve bazı ağırlık ve önyargıların öğrenilmesi gerekir. Bazı tensör işlemlerinden sonra, çıkış aşağıdaki katmana beslenir. Bu katmandaki hesaplama karmaşık olabilir, bu yüzden tensorflow'un benim için otomatik fark yaratabileceğini merak ediyorum.Konv2d ve tensör işlemleri gibi varolan ops ile tensorflow'da özel bir katman yazabilir miyim?

cevap

4

Katmanınız varolan görevlerin bir bileşimiyse, kesinlikle çalışır. Örneğin TF-Slim böyle çalışır.

# Skeleton code, just to demonstrate the concept 
def conv(input, ...): 
    kernel = tf.Variable(...) 
    tmp = tf.nn.conv2d(input, kernel, ...) 
    bias = tf.Variable(...) 
    tmp = tf.nn.bias_add(tmp, bias, ...) 
    return tf.nn.relu(tmp, ...) 

size da, daha

layer_1 = conv(input, ...) 
layer_2 = conv(layer_1, ...) 

gibi kullanabilir bazik evrişim tabakanın normal aşamaları gerçekleştiren bir "entegre" tabaka veren bir işlev tanımlar. Degradeler içeren opları oluşturduğunuz sürece, otomatik farklılaştırma işe yarayacaktır.

İlgili konular