Keras'ta önceden hazırlanmış VGG16 modeli almak, çıktı katmanını kaldırmak ve daha sonra yeni bir çıktı katmanını benim problemim için uygun olan sınıf sayısı ile birlikte koymak ve daha sonra yeni verilere sığdırmak istiyorum. Bu nedenle, bu modeli burada kullanmaya çalışıyorum: https://keras.io/applications/#vgg16, ancak Sıralı olmadığından, yalnızca model.pop()
yapılamıyor. Katmanlardan atmak ve eklemek de işe yaramıyor, çünkü tahminlerde eski şekli bekliyor. Bunu nasıl yaparım? Bu tür bir modeli Sequential
'a dönüştürmenin bir yolu var mı?Transfer öğrenimi için keras.applications'dan modeller nasıl kullanılır?
10
A
cevap
26
pop()
'u model.layers
üzerinde kullanabilir ve yeni katmanlar oluşturmak için model.layers[-1].output
kullanabilirsiniz.
Örnek:
from keras.models import Model
from keras.layers import Dense,Flatten
from keras.applications import vgg16
from keras import backend as K
model = vgg16.VGG16(weights='imagenet', include_top=True)
model.input
model.summary(line_length=150)
model.layers.pop()
model.layers.pop()
model.summary(line_length=150)
new_layer = Dense(10, activation='softmax', name='my_dense')
inp = model.input
out = new_layer(model.layers[-1].output)
model2 = Model(inp, out)
model2.summary(line_length=150)
Alternatif olarak, bu modellerin include_top=False
seçeneğini kullanabilirsiniz. Bu durumda tabakayı düzleştirmeniz gerekiyorsa, input_shape
'u da geçmeniz gerekir.
model3 = vgg16.VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
model3.summary(line_length=150)
flatten = Flatten()
new_layer2 = Dense(10, activation='softmax', name='my_dense_2')
inp2 = model3.input
out2 = new_layer2(flatten(model3.output))
model4 = Model(inp2, out2)
model4.summary(line_length=150)
İlgili konular
- 1. Django: Başka bir uygulamadan modeller nasıl kullanılır?
- 2. Takviye öğrenimi için kerastaki ağırlıklar nasıl güncellenir?
- 3. Makine öğrenimi için özellikler nasıl oluşturulur
- 4. Scikit'te Doğrusal Regresyon ve Degrade İniş Öğrenimi/Pandalar? Makine öğrenimi için
- 5. Gelincik - tüm modeller için
- 6. Python'dan Ruby öğrenimi;
- 7. CakePHP'de veritabanı olmayan modeller nasıl kullanılır ve birlikleriniz var mı?
- 8. Baz64 dosyaya nasıl transfer edilir?
- 9. Modeller için Ekran Adını Tanımla
- 10. Raylardaki modeller için varsayılan değerler
- 11. Tüm modeller için SQLAlchemy "event.listen"
- 12. Amazon S3 bölge transfer?
- 13. Bunu nasıl yapabilirim ... Çoklu modeller modeller bakış MVC 5
- 14. transfer kısaltma dizesini ayrıntılı bilgi için sql
- 15. Bir sonraki etkinlik için transfer tıklatıldı Etkinlik
- 16. Excel'den Word'e nasıl grafik transfer edilir
- 17. UIView'den iOS'ta SKScene'e nasıl transfer yapılır
- 18. T-SQL ile nasıl transfer yazılır
- 19. Boost :: ptr_vector öğesinin sahipliğini nasıl transfer edersiniz?
- 20. Google bulut projesi mülkiyeti nasıl transfer edilir?
- 21. Ben Azure Makine Öğrenimi Studio sınamak çalışıyorum Azure Makine Öğrenimi Studio
- 22. urllib2 piton (Transfer-Encoding: chunked)
- 23. Rails Modeller Oluşturma, has_many ve belongs_to için
- 24. iki farklı modeller
- 25. PHP'de "Transfer-Kodlama: yığınlanmış" başlığı
- 26. Poison Encode kodlama için iç içe modeller
- 27. Raylar 4.0.0 modeller için yabancı anahtar
- 28. Google App Engine'deki Modeller için Varsayılan Değerler
- 29. Doğrusal modeller için çapraz doğrulama R
- 30. Devise + Omniauth çoklu modeller
Bu çok önemlidir! Saatlerce uğraştığım problemimi çözüyorum! Teşekkür ederim ! – user40780
İnanılmaz derecede faydalı. Bu resmi Keras belgelerinde olmalıdır. –