如何将tensorflow变量转换为numpy数组

2024-10-02 08:14:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个模型图,其中我的输入是从java程序输入的tensorflow变量 在我的代码中,我使用了numpy方法,我需要将tensorflow变量输入转换为numpy数组输入

这里是我的代码片段

import tensorflow as tf
import numpy as np
eps = np.finfo(float).eps
EXPORT_DIR = './model'

def standardize(x):
   med0 = np.median(x)
   mad0 = np.median(np.abs(x - med0))
   x1 = (x - med0) / (mad0 + eps)
   return x1

#tensorflow input variable
a = tf.placeholder(tf.float32, name="input")
with tf.Session() as session:
session.run(tf.global_variables_initializer())
 #Converting the input variable to numpy array
 tensor = a.eval()

 #calling standardize method
 numpyArray = standardize(tensor)

 #converting numpy array to tf
 tf.convert_to_tensor(numpyArray)

 #creating graph
 graph = tf.get_default_graph()
 tf.train.write_graph(graph, EXPORT_DIR, 'model_graph.pb', as_text=False)

我遇到错误:InvalidArgumentError(回溯见上文):您必须在tensor=a.eval()行中为占位符张量“input”输入数据类型浮点值

当我用常量代替占位符时,它会工作并生成图形。但是我想从我的java代码中输入。 有什么方法可以做到这一点吗?或者我需要把我所有的numpy方法转换成tensorflow方法吗


Tags: to方法代码numpyinputtftensorflowas
1条回答
网友
1楼 · 发布于 2024-10-02 08:14:45

placeholder只是tensorflow中的一个空变量,您可以将numpy的值馈送给它。现在,你想做的事情没有意义。不能从空变量中获取值。在

如果你想standardize你的张量,为什么要先把它转换成numpyvar?您可以使用tensorflow直接执行此操作。在

以下内容取自this stackoverflow ans

def get_median(v):
    v = tf.reshape(v, [-1])
    m = v.get_shape()[0]//2
    return tf.nn.top_k(v, m).values[m-1]

现在,您可以将函数实现为

^{pr2}$

相关问题 更多 >

    热门问题