【发布时间】:2020-05-04 20:38:42
【问题描述】:
我正在通过一个简单的卷积网络连接到 MNIST 数据集。我想手动告诉程序完成该过程中的每个步骤,即遍历每个 Epoch 和批次,而不使用 model.fit(我想更好地了解 tensorflow 的内部工作原理)。
目前我有:
let EPOCHS = 10;
let batches = Math.floor(TRAIN_DATA_SIZE/BATCH_SIZE);
for (let i = 0; i < EPOCHS; i++){
for (let j = 0; i < batches; i++){
let inputs = await getNextTrain(BATCH_SIZE,TRAIN_DATA_SIZE, data);
let inputXs = inputs[0];
let inputYs = inputs[1];
let output = await model.evaluate(inputXs,inputYs);
遍历每个 Epoch 和每个批次以进行 traian。但是 model.evalutate() 不返回网络的输出值,只返回定义的损失/指标。您是否可以为此添加特定指标以返回网络的输出
我想要的是代表网络认为每个输入的输出是什么的 10 元素数组(或张量)(使用 MNIST 所以希望概率网络认为每个输出是数字 0-9)
【问题讨论】:
-
model.predict? -
model.predict 只会返回一个全为 0 的张量,除了模型认为正确的输出为 1。我想在它选择它认为的那个之前看看所有的概率是多少
-
不应该。您的网络中是否有一层将其输入的最大值设置为 1,其余设置为零?
-
最后一层是dense layer,带有softmax激活函数。我不相信这会更新它以将最大值设置为 1,其余设置为 0
-
做了更多的测试,我很确定在所有输出都为 1 或如此接近 1 之前,我非常不走运,我认为这是一个舍入错误。现在看到 model.predict 的输出分布很广
标签: javascript tensorflow