Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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
如何使用numpy对tensorflow lite中的张量进行运算_Tensorflow_Tensorflow Lite - Fatal编程技术网

如何使用numpy对tensorflow lite中的张量进行运算

如何使用numpy对tensorflow lite中的张量进行运算,tensorflow,tensorflow-lite,Tensorflow,Tensorflow Lite,我有一个tensorflow图,它试图将一个图像分割成三个单通道图像 input_image = tf.placeholder(name="input_image", dtype=tf.float32, shape=[512 * 512 *3]) feed_dict ={input_image:resized_image_data} channel_image = tf.reshape(input_image, (512, 512, 3)) 我切片张量,计算模糊,然后在“评估”张量上使用nu

我有一个tensorflow图,它试图将一个图像分割成三个单通道图像

input_image = tf.placeholder(name="input_image", dtype=tf.float32, shape=[512 * 512 *3])
feed_dict ={input_image:resized_image_data}

channel_image = tf.reshape(input_image, (512, 512, 3))
我切片张量,计算模糊,然后在“评估”张量上使用numpy的数据堆栈。 这在tensorflow中工作,但tensorflow lite失败,出现“无法分配内存”错误

如何使用numpy对张量结果进行运算? 我不能使用tf.unstack和tf.stack,因为它们目前没有在tensorflow中实现。精简

logcat是:

07-02 11:20:36.486 6553-6553/camerafragment E/AndroidRuntime:致命异常:主 进程:camerafragment,PID:6553 java.lang.RuntimeException:无法恢复活动{camerafragment/camerafragment.MainActivity}:java.lang.NullPointerException:无法为解释器分配内存 位于android.app.ActivityThread.performResumeActivity(ActivityThread.java:3773) 位于android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3805) 在android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51)中 位于android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145) 在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)中 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1797)上 位于android.os.Handler.dispatchMessage(Handler.java:106) 位于android.os.Looper.loop(Looper.java:193) 位于android.app.ActivityThread.main(ActivityThread.java:6642) 位于java.lang.reflect.Method.invoke(本机方法) 位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 原因:java.lang.NullPointerException:无法为解释器分配内存 位于org.tensorflow.lite.NativeInterpreterWrapper.create解释器(本机方法) 位于org.tensorflow.lite.NativeInterpreterWrapper。(NativeInterpreterWrapper.java:63) 位于org.tensorflow.lite.NativeInterpreterWrapper。(NativeInterpreterWrapper.java:51) 在org.tensorflow.lite.解释器上(解释器.java:90) 在camerafragment.MainActivity.initializeInference(MainActivity.java:230)处 在camerafragment.MainActivity.onResume(MainActivity.java:91) 位于android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1412) 在android.app.Activity.performResume上(Activity.java:7287) 在android.app.ActivityThread.performResumeActivity(ActivityThread.java:3765)上 位于android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3805) 在android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51)中 位于android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145) 在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)中 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1797)上 位于android.os.Handler.dispatchMessage(Handler.java:106) 位于android.os.Looper.loop(Looper.java:193) 位于android.app.ActivityThread.main(ActivityThread.java:6642) 位于java.lang.reflect.Method.invoke(本机方法)
r,g,b = channel_image[:,:,0],channel_image[:,:,1],channel_image[:,:,2]

rtensor = tf.convert_to_tensor(r)
gtensor = tf.convert_to_tensor(g)
btensor = tf.convert_to_tensor(b)

rbatch = tf.expand_dims(tf.expand_dims(rtensor, axis=2), axis=0)
gbatch = tf.expand_dims(tf.expand_dims(gtensor, axis=2), axis=0)
bbatch = tf.expand_dims(tf.expand_dims(btensor, axis=2), axis=0)

rblur = tf.squeeze(blur(one_chan_kernel, strides, rbatch, 2), name="rblur")
gblur = tf.squeeze(blur(one_chan_kernel, strides, gbatch, 2), name="gblur")
bblur = tf.squeeze(blur(one_chan_kernel, strides, bbatch, 2), name="bblur")

result_np = np.dstack((rblur.eval(feed_dict=feed_dict), gblur.eval(feed_dict=feed_dict), bblur.eval(feed_dict=feed_dict)))
result = tf.expand_dims(tf.convert_to_tensor(result_np, name="result_tensor"), axis=0)
                                                                            --------- beginning of crash