首页 > 解决方案 > 将张量流数据集转换为 numpy 数组

问题描述

tf.keras在 tensorflow 1.15 中定义了一个自动编码器。由于某些特定原因,我无法将 tensorflow 升级到 2.0。

这种特殊的自动编码器用于异常检测。我目前计算自动编码器的 AUC 分数如下:

  1. 所有异常输入标记为 1,所有正常输入标记为 0。这是y_true

  2. 我向自动编码器提供看不见的输入,然后测量重建误差,如下所示:errors = np.mean(np.square(data - model.predict(data)), axis=-1)

  3. 然后将该数组的平均值称为预测标签,y_pred

  4. 然后我使用 计算 AUC auc = metrics.roc_auc_score(y_true, y_pred)

这种方法效果很好。我现在需要转向使用tf.data.dataset来输入我的数据。以前,它是 numpy 数组。问题是,我无法将 tf.data.dataset 转换为 numpy 数组,因此无法计算 2 中所示的均方误差。

一旦我有了tf.data.Dataset,我就将它提供给预测,如下所示:results = model.predict(x_test)

这会产生一个 numpy 数组,results. 我想计算resultswith的均方误差x_test。但是,x_test是类型tf.data.Dataset。所以问题是,如何在 tensorflow 1.15 中将 tf.data.dataset 转换为 numpy 数组,或者有什么替代方法可以做到这一点?

标签: tensorflow

解决方案


推荐阅读