首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用TensorFlow js训练模型。准确性在训练过程中没有变化,损失也没有显示出来。

使用TensorFlow js训练模型。准确性在训练过程中没有变化,损失也没有显示出来。
EN

Stack Overflow用户
提问于 2022-10-09 00:52:10
回答 1查看 37关注 0票数 0

我试着用"binaryCrossentropy“的损失来训练一个模型。但是,当我打印出损失和准确性时,我得到的只是:损失:NaN。准确性为59.93 (不改变训练)。

有什么可以解释的吗?

以下是代码:

代码语言:javascript
运行
复制
const df = await dfd.readCSV("./trainOut2.csv");
const dft = await dfd.readCSV("./testOut2.csv");

const trainX = df.iloc({ columns: ["1:"] }).tensor;
const trainY = df["Survived"].tensor;

const testX = dft.iloc({ columns: ["1:"] }).tensor;
const testY = dft["Survived"].tensor;

console.log(trainX.shape, trainY.shape);

const callbacks = {
  onEpochEnd: async (epoch, logs) => {
    console.log(`
    logs:${Object.keys(logs)}
        EPOCH (${epoch + 1}):
       
          Train Accuracy: ${(logs.acc * 100).toFixed(2)},
          Val Accuracy:  ${(logs.val_acc * 100).toFixed(2)},
          Val Loss = ${(logs.val_loss * 100).toFixed(2)},
           Loss = ${(logs.loss * 100).toFixed(2)}
      `);
  },
};

const model = tf.sequential();

model.add(
  tf.layers.dense({
    inputShape: 7,
    units: 120,
    activation: "relu",
    kernelInitializer: "heNormal",
  })
);
model.add(
  tf.layers.dense({
    units: 64,
    activation: "relu",
  })
);
model.add(
  tf.layers.dense({
    units: 32,
    activation: "relu",
  })
);
model.add(
  tf.layers.dense({
    units: 1,
    activation: "sigmoid",
  })
);

model.compile({
  optimizer: "adam",
  loss: "binaryCrossentropy",
  metrics: ["accuracy"],
});

await model.fit(trainX, trainY, {
  batchSize: 32,
  epochs: 100,
  verbose: 2,
  validationData: [testX, testY],
  callbacks: callbacks,
});

谢谢你的时间和反馈。

EN

回答 1

Stack Overflow用户

发布于 2022-10-09 20:02:55

培训数据集包含空值。删除所有带空值的行可以解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74001449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档