python - 如何将 tf 模型预测与层相关联?
问题描述
我们正在研究我们的Tensorflow
AI Sequential model
,它具有输入数据数组,并提供预测的“真”或“假”概率。
我们想知道哪个预测对应于“真”,哪个预测对应于“假”
我们的模型:
model = tf.keras.Sequential([
layers..
tf.keras.layers.GlobalAveragePooling1D(),
tf.keras.layers.Dense(2, activation='softmax')
])
模型编译:
model.compile(loss="sparse_categorical_crossentropy",
optimizer=tf.keras.optimizers.Adam(),
metrics=['accuracy']
)
然后模型适合测试和结果,其中结果是“真”或“假”。
history = self.model.fit(
np.array(self.data["tests"], dtype=float),
np.array(self.data["results"], dtype=float),
validation_split=0.1,
epochs=self.epochs,
batch_size=self.batch_size,
steps_per_epoch=self.steps_per_epoch,
verbose=0,
shuffle=True,
callbacks=[PlotLossesKerasTF()],
)
当我们对我们使用的新数据进行预测时model.predict(newData)
,它会为我们提供如下概率:
[[0.5787903 0.42120975]]
那么这些数字中的哪些对应于哪个标签?
解决方案
它与您的训练标签相同。
假设您有一个输入图像,并且您对它是猫、狗还是鸟进行分类。然后,您的训练数据是一组图像和相应的标签,[cat dog bird]
例如 - 标记为狗的图像[0 1 0]
。因此model.predict(image)
以相同格式输出概率数组,猫分类的概率等等[cat dog bird]
。output[0]
此外,如果您的输出为真/假,请考虑使用一个具有 sigmoid 激活和二元交叉熵的神经元输出作为您的损失函数。
推荐阅读
- python - 用scrapy刮掉所有主机名
- javascript - MEAN堆栈多图上传意外字段错误
- javascript - 一次查询的猫鼬限制
- shell - 如何在管道 stdio 的同时模拟 TTY?
- modelica - 模型中阀门的标称质量流量、标称压降、标称密度
- entity-framework - 这是使用 SqlAzureExecutionStrategy 但不是在用户启动的事务代码中的好选择吗?
- git - 如何在 dev 分支上工作,但将 master 作为默认克隆分支
- javascript - Vue.js 计算属性,按对象键过滤
- javascript - 五:未捕获的类型错误:无法读取未定义的属性“x”(@esx_mcdonaldscrafting/html/js/app.js:66)
- mysql - 在 MySql 8 上使用 CTE 更新 linq2db