Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在NodeJS上运行冻结Tensorflow模型_Javascript_Python_Node.js_Tensorflow_Tensorflow.js - Fatal编程技术网

Javascript 在NodeJS上运行冻结Tensorflow模型

Javascript 在NodeJS上运行冻结Tensorflow模型,javascript,python,node.js,tensorflow,tensorflow.js,Javascript,Python,Node.js,Tensorflow,Tensorflow.js,我不熟悉tensorflowjs(以及一般的js),但是我需要在它上面运行一个经过训练的模型。 目前,我将模型转换为json格式,但很难向其提供数据: const tf = require('@tensorflow/tfjs') const tfn = require('@tensorflow/tfjs-node-gpu') async function start() { const handler = tfn.io.fileSystem("./model/model.json")

我不熟悉tensorflowjs(以及一般的js),但是我需要在它上面运行一个经过训练的模型。 目前,我将模型转换为json格式,但很难向其提供数据:

const tf = require('@tensorflow/tfjs')
const tfn = require('@tensorflow/tfjs-node-gpu')

async function start() { 
    const handler = tfn.io.fileSystem("./model/model.json"); 
    const model = await tf.loadGraphModel(handler); 
    let latents = tf.randomNormal([1,512], 'float32'); 
    let labels = tf.zeros([1, 0]); 
    model.predict([latents, labels]);
}
start();
但是我收到一个错误,说Conv2D op当前在CPU上支持NHWC张量格式。op的格式为:NCHW

据我所知,这是一个tfjs问题,所以我尝试创建一个float32数组并将其传递给模型,如下所示:

var f32array = new Float32Array(512);
model.predict([f32array, labels]);
但随后我看到一个错误,即model.execute(dict)中提供的dict['Gs/latents\u in']的数据类型必须是float32,但未定义

对于python,我使用以下代码运行推理:

graph = load_graph("dash/frozen_model.pb")

    x = graph.get_tensor_by_name('prefix/Gs/latents_in:0')
    x2 = graph.get_tensor_by_name('prefix/Gs/labels_in:0')
    y = graph.get_tensor_by_name('prefix/Gs/images_out:0')


    with tf.Session(graph=graph, config = config) as sess:
        while True:
            start_time = time.time()

            latents = np.random.randn(1, 512).astype(np.float32)
            labels = np.zeros([latents.shape[0], 0], np.float32)
            y_out = sess.run(y, feed_dict = { x: latents, x2: labels})

如果您有任何帮助,将数据作为
Float32Array
传递将不起作用,因为
模型。predict
需要张量或张量数组

如错误所示:

Conv2D op目前在CPU上支持NHWC张量格式。op的格式为:NCHW


js中版本
1.6
的conv2D仅支持NHWC格式。您唯一能做的就是更改python中的模型,以便只使用NHWC格式。

我想我必须这样做,谢谢您的回答