问题描述
我正在与TensorflowJS一起识别鸟类。我已经将keras .h5模型转换为TensorflowJS。以下是我的全部predict.js代码:
$(document).on('change','#image-selector',function() {
let reader = new FileReader();
reader.onload = function() {
let dataURL = reader.result;
$('#selected-image').attr("src",dataURL);
$('#prediction-list').empty();
}
let file = $("#image-selector").prop('files')[0];
reader.readAsDataURL(file);
});
let model;
(async function() {
model = await tf.loadLayersModel('http://localhost:81/tfjs-models/model.json');
$('.progress-bar').hide();
})();
$(document).on('click','#predict-button',async function() {
let image = $('#selected-image').get(0);
let tensor = tf.browser.fromPixels()(image)
.resizeNearestNeighbor([224,224])
.toFloat()
.expandDims();
let predictions = await model.predict(tensor).data();
let bird = Array.from(predictions)
.map(function (p,i){
return {
probability: p,className: IMAGENET_CLASSES[i]
};
}).sort(function (a,b) {
return b.probability - a.probability;
}).slice(0,1);
$("#prediction-list").empty();
bird.forEach(function (p) {
$('#prediction-list').append(`<li>${p.className}: ${p.probability.toFixed(2)}</li>`)
});
});
运行服务器时,出现以下错误:
Error: pixels passed to tf.browser.fromPixels() can not be null
at fromPixels_ (browser.js:66)
at Object.fromPixels (operation.js:45)
at HTMLButtonElement.<anonymous> (predict.js:20)
at HTMLDocument.dispatch (jquery-3.3.1.min.js:2)
at HTMLDocument.y.handle (jquery-3.3.1.min.js:2)
以下是我链接到HTML的脚本:
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs/dist/tf.min.js"> </script>
<script src="imagenet_classes.js"></script>
<script src="predict.js"></script>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)