tensorflow和html的新手,在文本分类中表现不佳。
我正在尝试检测文本的正负极性。在浏览器中针对否定和肯定的类在手动过滤的文本(句子)上训练了模型,并将其保存在.JSON和.BIN文件中。
async function saveFile(){ const saveResults = await model.save('downloads://my-model-1');}
通过用户输入重新加载文件
async function loadFile(){ const jsonUpload = document.getElementById('json-upload'); const weightsUpload = document.getElementById('weights-upload');
const model = await tf.loadModel(tf.io.browserFiles([jsonUpload.files[0], weightsUpload.files[0]]));
model.compile({loss: "categoricalCrossentropy", optimizer: "adam", metrics:'accuracy'});
model.summary();
}
summary of model loaded, trained and saved from small portion of data
卡在重新创建的模型中(错误:未捕获的TypeError:无法建立顺序模型:模型为空。首先添加一些层。)
我需要做的是LOAD MODEL,该模型应该预测用户输入文本的极性为负/正,检测准确度。
任何人都可以提供一些详细的帮助,虽然学习起来却无法通过https://www.tensorflow.org/js的教程获得帮助
型号
// Define a model
model = tf.sequential();
console.log(sequence_length);
//Add layers to model
model.add(tf.layers.embedding({
inputDim: vocabulary_size,
outputDim: embedding_dim,
inputLength: sequence_length,
trainable: true
}));
addCLayers();
model.add(tf.layers.dropout ({rate:0.2}));
model.add(tf.layers.flatten());
model.add(tf.layers.dense({units: 100, activation: 'sigmoid'}));
model.add(tf.layers.dense({units: 1000, activation: 'sigmoid'}));
model.add(tf.layers.dense({units: 100, activation: 'sigmoid'}));
model.add(tf.layers.dense({units: 2, activation: 'softmax'}));
答案 0 :(得分:0)
我相信我看到了两个问题。
首先,您使用的是loadModel
,已弃用。您需要尽快切换到loadLayersModel
。就像您当前正在使用的那样,它也可以接受IOHandler。
第二件事是您需要在保存之前编译模型。我看到您正在加载,然后尝试进行编译。加载后无需编译。您 CAN 但是会加载无层模型。
在保存模型之前,请确保其状态良好。这似乎是问题所在。