У меня есть тензор потока, который пытается разделить изображение на три одноканальных изображения.
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))
Я нарезаю тензор, вычисляю размытие и затем использую dstack numpy на «оцененных» тензорах.
Это работает в тензорном потоке, но тензор потока облегчается с ошибкой «Не удается выделить память».
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)
Как я могу использовать numpy для работы с тензорными результатами?
Я не могу использовать tf.unstack и tf.stack, поскольку они в настоящее время не реализованы в tenorflow. облегченный
logcat:
--------- beginning of crash
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.createInterpreter (собственный метод)
в org.tensorflow.lite.NativeInterpreterWrapper. (NativeInterpreterWrapper.java:63)
в org.tensorflow.lite.NativeInterpreterWrapper. (NativeInterpreterWrapper.java:51)
на сайте org.tensorflow.lite.Inprepreter. (Interpreter.java:90)
at camerafragment.MainActivity.initializeInference (MainActivity.java:230)at 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 (родной метод)
в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:493)
на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858)