python - 使用 Keras 和 TensorFlow 找到最大化神经网络输出的输入

标签 python tensorflow machine-learning neural-network keras

我使用 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)
])

最佳答案

我觉得你会想要反向传播关于卡住所有权重到你的模型的输入。你可以做的是:

  1. 在输入层后添加一个与输入维度相同的dense层,并设置为可训练
  2. 卡住模型的所有其他层。 (你添加的除外)
  3. 作为输入,提供单位矩阵并根据您想要的任何输出训练您的模型。

This文章和this如果您想根据输入进行反向传播,post 可能会对您有所帮助。这有点像你的目标,但你可以得到直觉。

关于python - 使用 Keras 和 TensorFlow 找到最大化神经网络输出的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52678215/

相关文章:

python - 为什么 'Facebook for websites' 登录,也让你登录到 facebook.com?

python 3 : Trying to iterate lines of alphabet based on function of i

python - boto3 获取每项服务的可用操作

python - num_epochs 和 steps 有什么区别?

python - 使用 protobuf 从 tfrecords 文件中提取图像而不运行 TensorFlow session

python - 如何评估分类器在测试数据上的性能?

python - pytorch KLDivLoss损失为负

python - 使用字符串搜索列表

python - 将元数据添加到 tensorflow 卡住图 pb

python - 线性回归梯度