Tensorflowjs操作数无法与形状一起广播
我在Tensorflow中有一个工作模型,可以很好地与Python配合使用。它现在是一个已保存的模型,并试图转换为TensorflowJS 转换后的模型似乎无法正常工作。尽管输入为[1,96192,3],但张量图的平均值似乎为0,形状为[0] 转换过程如下所示Tensorflowjs操作数无法与形状一起广播,tensorflow,tensorflow.js,tensorflowjs-converter,Tensorflow,Tensorflow.js,Tensorflowjs Converter,我在Tensorflow中有一个工作模型,可以很好地与Python配合使用。它现在是一个已保存的模型,并试图转换为TensorflowJS 转换后的模型似乎无法正常工作。尽管输入为[1,96192,3],但张量图的平均值似乎为0,形状为[0] 转换过程如下所示 tensorflowjs_converter --input_format=tf_saved_model ~/Projects/models/model_0 ~/Projects/modelsjs/model_0 这工作正常,而且似乎加
tensorflowjs_converter --input_format=tf_saved_model ~/Projects/models/model_0 ~/Projects/modelsjs/model_0
这工作正常,而且似乎加载正常。然而,当涉及到预测时,会抛出错误,任何建议都将不胜感激
<script>
async function handleButtonClick(){
for(var i=0; i<1;i++)
{
var t0 = performance.now();
console.log("Loading - model_"+i);
var inputTensor = tf.tensor4d(input);
var model = await tf.loadGraphModel('/modelsjs/model_'+i+'/model.json');
var poutput = model.predict(inputTensor);
}
</script>
根据上述错误,尝试使用executeAsync进行预测,但产生了与此问题相关的错误
<script>
async function handleButtonClick(){
for(var i=0; i<1;i++)
{
var t0 = performance.now();
console.log("Loading - model_"+i);
var inputTensor = tf.tensor4d(input);
var model = await tf.loadGraphModel('/modelsjs/model_'+i+'/model.json');
console.log("Load model_" + i + "took " + (t1 - t0) + " milliseconds.");
const res = await model.executeAsync(inputTensor);
}
</script>
使用一些深入的开发工具,错误似乎从这里开始
将“strict”设置为true时,模型仍会加载,不会抛出错误
var model = await
tf.loadGraphModel('/modelsjs/model_0/model.json', {onProgress:onProgressCallback, strict:true});
遗憾的是,我无法共享该模型,因为它是专有的。该模型是错误的
最初是一个Keras模型,后来转换为Tensorflow Saved模型。将此模型转换为Tensorflowjs不起作用
然而,将原始模型从Keras转换为Tensorflowjs是可行的
吸取的教训是,不要把你的模型混得太多 您是否尝试打印
InputSensor
以查看其是否具有所需的形状?您好。输入张量似乎具有正确的形状。另外,我们在这里发现了类似的问题。已经尝试使用--signature\u name=service\u default和saved\u model\u tags=server进行转换,但运气不佳。同样的问题。您是否手动更改了model.json?否。我根本没有更改model.json。我直接使用了tensorflowjs_转换器的输出,而没有进行编辑。@edkevek似乎“is_training”:{“b”:true},出现在models.json文件中,尽管“is_training”:{“b”:false},也会出现。
broadcast_util.ts:81 Uncaught (in promise) Error: Operands could not be broadcast together with shapes 1,12,24,64 and 0.
at un (broadcast_util.ts:81)
at new kn (batchnorm_packed_gpu.ts:32)
at t.batchNormalization (backend_webgl.ts:869)
at Bt.engine.runKernel.$x (batchnorm.ts:344)
at engine.ts:206
at t.scopedRun (engine.ts:167)
at t.runKernel (engine.ts:202)
at $a (batchnorm.ts:343)
at batchNorm (operation.ts:46)
at xy (normalization_executor.ts:31)
var model = await
tf.loadGraphModel('/modelsjs/model_0/model.json', {onProgress:onProgressCallback, strict:true});