[1] 在 model.evaluate(X, Y)[1] 中是什么意思

托尼·李

以下代码来自一本名为“所有人的深度学习”的教科书,它是根据皮马印第安人的数据预测糖尿病。我想知道代码末尾的 [1] 是什么意思。

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
import numpy
import tensorflow as tf

np.random.seed(3)
tf.random.set_seed(3)

dataset = np.loadtxt('.\dataset\pima-indians-diabetes.csv', delimiter=',')

X = dataset[:, 0:8]
Y = dataset[:, 8]

model = Sequential()
model.add(Dense(12, input_dim=8, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

model.fit(X, Y, epochs=200, batch_size=10)

print('\n Accuracy: %.4f' % (model.evaluate(X, Y)[1]))    # <---------

在 Keras 中model.evaluate()返回聚合指标值的列表。假设你要测量的损失,准确性,F1得分您的测试数据,那么你将compile你的模型是这样的:model.compile(optimizer, loss, metrics=['accuracy', custom_f1_function], .. )然后将为数据集中的每个样本(或批次)计算这些,然后通常通过取平均值来减少。最后你会得到一个包含三个元素的列表:聚合损失、聚合准确度、聚合 F1 分数。在您的代码中,您正在访问此列表的第二个元素,即准确性。

(`metrics=[..] 中的顺序决定了输出列表中的顺序!)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章