我使用 Keras 和 TensorFlow 对 Fashion MNIST 进行了分类以下 this tutorial .
它使用 AdamOptimizer找到最小化网络损失函数的模型参数值。网络的输入是一个形状为 [28, 28] 的二维张量,输出是一个形状为 [10] 的一维张量,它是 softmax 函数的结果。
网络训练完成后,我想将优化器用于另一项任务:找到一个最大化输出张量元素之一的输入。如何才能做到这一点?是否可以使用 Keras 或必须使用较低级别的 API 来做到这一点?
由于给定输出的输入不是唯一的,如果我们可以对输入可以采用的值施加一些限制,那就更好了。
训练好的模型格式如下
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(128, activation=tf.nn.relu),
keras.layers.Dense(10, activation=tf.nn.softmax)
])
最佳答案
我觉得你会想要反向传播关于卡住所有权重到你的模型的输入。你可以做的是:
- 在输入层后添加一个与输入维度相同的dense层,并设置为可训练
- 卡住模型的所有其他层。 (你添加的除外)
- 作为输入,提供单位矩阵并根据您想要的任何输出训练您的模型。
关于python - 使用 Keras 和 TensorFlow 找到最大化神经网络输出的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52678215/