在培训Keras功能API模型时,如何打印不同激活层的精度?(Tensorflow Python)

2024-10-01 07:43:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Functional API创建了一个具有三个不同输出层的模型,以测试不同的激活函数。问题是每个历元的输出线太长。我只想看准确度,而不是损失

Epoch 1/5
1875/1875 - 4s - loss: 3.7070 - Sigmoid_loss: 1.1836 - Softmax_loss: 1.2291 - Softplus_loss: 1.2943 - Sigmoid_accuracy: 0.9021 - Softmax_accuracy: 0.9020 - Softplus_accuracy: 0.5787

我不想用.fit()函数来打印每一层的损耗,只想打印精度。我搜索了Google和Tensorflow的所有文档,但找不到如何操作

如果你想要完整的代码,请评论这篇文章。我马上寄去

以下是模型的摘要:

Model: "model"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
InputLayer (InputLayer)         [(32, 784)]          0                                            
__________________________________________________________________________________________________
FirstHidden (Dense)             (32, 512)            401920      InputLayer[0][0]                 
__________________________________________________________________________________________________
SecondHidden (Dense)            (32, 256)            131328      FirstHidden[0][0]                
__________________________________________________________________________________________________
Sigmoid (Dense)                 (32, 10)             2570        SecondHidden[0][0]               
__________________________________________________________________________________________________
Softmax (Dense)                 (32, 10)             2570        SecondHidden[0][0]               
__________________________________________________________________________________________________
Softplus (Dense)                (32, 10)             2570        SecondHidden[0][0]               
==================================================================================================
Total params: 540,958
Trainable params: 540,958
Non-trainable params: 0
__________________________________________________________________________________________________
None

谢谢您,祝您有愉快的一天。


Tags: 函数模型apiplusparamsdensesoftfunctional
1条回答
网友
1楼 · 发布于 2024-10-01 07:43:55

这是我在自定义回调中的快照。注:我假设Sigmoid_精度、Softmax_精度和Softplus_精度之前定义为model.compile中的度量。 下面是自定义回调的代码

class Print_Acc(keras.callbacks.Callback):
    def __init__(self):
        super(Print_Acc, self).__init__() 
        
    def on_epoch_end(self, epoch, logs=None):  # method runs on the end of each epoch
        sig_acc=logs.get('Sigmoid_accuracy')  
        softmax_acc =logs.get('Softmax_accuracy')
        softplus_acc =logs.get('Softplus_accuracy')
        print('For epoch ',epoch, ' sig acc= ', sig_acc, ' softmac acc= ', softmax_acc, ' softplus acc= ', softplus_acc)

在model.fit中包括回调=[Print_Acc]

相关问题 更多 >