【发布时间】:2019-01-15 16:45:59
【问题描述】:
我正在尝试在 tensorflow 中使用一个函数(来自另一个模块)。该函数接受一个 numpy 数组并返回更改点。我的主要目标是在 tensorflow 服务上部署这个模型。我遇到了错误
AttributeError: 'DType' 对象没有属性 'type'
有 2 个函数,一个是 create_data(),它创建一个 numpy 数组并返回它,另一个是 change(),它接受 numpy 数组并使用前面提到的函数返回更改点。我创建了一个占位符来接受输入数据,一个执行函数的操作。问题是,如果我尝试通过占位符发送数据,我会遇到错误。如果我将数据直接发送到函数中,它就会运行。以下是我的代码。
def create_data():
np.random.seed(0)
size = 100
mean_a = 0.0
mean_b = 10.0
mean_c = 0
var = 0.1
data_a = np.random.normal(mean_a, var, size)
data_b = np.random.normal(mean_b, var, size)
data_c = np.random.normal(mean_c, var, size)
data = np.concatenate([data_a, data_b, data_c])
return data
def change(data):
# what else i tried
# data = np.array(data, dtype=np.float)
# above line gives another error mentioned after code
cpts = (pelt(normal_mean(x, np.var(x)), len(x)))
return cpts
sess = tf.Session()
x = tf.placeholder(tf.float32, shape=[300, ], name="myInput")
y = tf.convert_to_tensor(change(x),np.float32,name="myOutput")
z = sess.run(y,feed_dict={x:create_data()})
如果我在函数 change() 中尝试代码 data = np.array(data, dtype=np.float),它会给我错误
ValueError: 使用序列设置数组元素。
我也尝试了data = np.hstack((data)).astype(np.float) 和data = np.vstack((data)).astype(np.float),但它遇到了一个单独的错误,说使用 tf.map_fn。我还尝试使用 tf.eval() 来转换数字,但我无法让它们在带有占位符的函数中运行。
但如果我直接发送输出,
y = tf.convert_to_tensor(change(create_data()),np.float32,name="myOutput")
它有效。
我应该如何发送输入以使其工作?
编辑:如果有人想知道,有问题的函数是this。
【问题讨论】:
标签: python-3.x numpy tensorflow tensorflow-serving