且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在keras中查看层输出的张量值

更新时间:2023-12-03 10:56:16

打印张量的非常简单的方法:

Very simple way to print a tensor :

from keras import backend as K

k_value = K.eval(tensor)
print(k_value)

更新 1

创建一个回调以在每个 epoch 结束时打印:

Create a callback to print at the end of each epoch :

class callback(Callback):
    def __init__(self, model, X_train):
        self.model = model
        self.x = X_train

    def on_train_begin(self, logs={}):
        return

    def on_train_end(self, logs={}):
        return

    def on_epoch_begin(self, epoch, logs={}):
        return

    def on_epoch_end(self, epoch, logs={}):
        inp = model.input  # input placeholder
        outputs = model.layers[N].output  # get output of N's layer
        functors = K.function([inp, K.learning_phase()], [outputs])
        layer_outs = functors([self.x, 1.])
        print('
 OUTPUT TENSOR : %s' % layer_outs)

        return

    def on_batch_begin(self, batch, logs={}):
        return

    def on_batch_end(self, batch, logs={}):
        return

在您的 fit() 方法中调用此函数,如下所示:

Call this function in your fit() method like that :

callbacks=[callback(model = model, X_train = X_train)])

灵感来自 Keras,如何获取每个层的输出层?

希望这最终能帮到你!