从tensorflow js模型中获取原始输出



我正在通过一个简单的卷积网络处理MNIST数据集。我想手动告诉程序完成过程中的每一步,即在不使用model.fit的情况下迭代每个Epoch和批次(我想更好地了解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和每个批次中进行迭代。但是,model.evalutate((不返回网络的输出值,只返回定义的损失/度量。有没有一个特定的指标可以添加,以返回网络的输出

我想要的是10元素数组(或张量(,它表示网络认为每个输入的输出是什么(使用MNIST,所以希望概率网络认为每个输出是数字0-9(

您可以在内部循环中调用model.fit并设置以下参数epoch=1 initial_epoch=i \ So that it trains only the current epoch and batch. 'i' being outer loop variable. x=inputXs y=inputYs

这将相应地更新模型中的所有权重。然后,您可以调用model.evaluate、model.predict或model.get_layer来获取您想要查看的信息。因为,你现在有了每个层的信息,你可以通过只根据需要评估特定层来独立地检查它们的输出值(指你提到的行,看看所有的概率…等等(

随着更新的变化:

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];
model.fit(..on above mentioned params..);
model.evaluate() // To get loss and metric values.
model.predict()  // To the final output of the model for input samples given.
model.get_layer() //To get info about a particular layer and then retrieve the required info. Refer https://keras.io/layers/about-keras-layers/
// For example to know the 1st layer's output : model.layers[0].output;

`

最新更新