CNN Filtrelerini Görselleştirme

Amacımız, random üretilen bir resmin daha önce MNIST datası ile eğitilmiş bir modele girdi olarak vererek çıktı olarak istediğimiz rakamı üretmek. ve sonunda modelin öğrendiği özelikleri görselleştireceğiz.

   def Mymodel():
    
   
        model=Sequential()
        model.add(Convolution2D(32, 3, input_shape=(28,28,1)))
        model.add(Convolution2D(64, 3))
        model.add(Activation('relu'))
        model.add(MaxPooling2D(pool_size=(2, 2)))
        model.add(Dropout(0.25))
        
        model.add(Flatten())
        
        model.add(Dense(128))
        model.add(Activation('relu'))
        model.add(Dropout(0.5))
        
        model.add(Dense( 10))
        model.add(Activation(tf.nn.softmax))  
         
        optimizer = keras.optimizers.Adadelta()
        model.compile(loss='sparse_categorical_crossentropy',          optimizer=optimizer, metrics=['accuracy'])
             model.fit(X_train,Y_train,epochs=12,batch_size=128,validation_data=(X_test,Y_test))
         
        return model;
def GenerateImage(model,y_true ,img,lr,iterate):

     output = model.layers[9].output
     loss =K.mean(output[:,y_true])
     grads = K.gradients(loss, model.input)[0]
     grads /= (K.sqrt(K.mean(K.square(grads))) + 1e-5)
     train = K.function([model.input],[loss,grads])
     K.set_learning_phase(False)
     keras.backend.set_learning_phase(0)
     result = []
     imgAll = []
     for i in range(iterate):
          loss,grads=train([img])
          img+=grads*lr
          result.append(model.predict(img))
          imgAll.append(img)

     return result,imgAll

Okumaya devam et