无法使用tensorflow获取力矩

无法使用tensorflow获取力矩,tensorflow,Tensorflow,我想计算向量的矩x=np.random.normal(0,1,[1500])。当我做mean,std=tf.nn.矩(x,axes=[0])时,它抛出以下错误: File "/tmp/venv/local/lib/python2.7/site-packages/tensorflow/python/ops/nn.py", line 830, in moments y = math_ops.cast(x, dtypes.float32) if x.dtype == dtypes.float16 el

我想计算向量的矩
x=np.random.normal(0,1,[1500])
。当我做
mean,std=tf.nn.矩(x,axes=[0])
时,它抛出以下错误:

File "/tmp/venv/local/lib/python2.7/site-packages/tensorflow/python/ops/nn.py", line 830, in moments
y = math_ops.cast(x, dtypes.float32) if x.dtype == dtypes.float16 else x
TypeError: data type not understood

我使用的是
tensorflow==0.11.0
。正确的语法是什么

如的文档所示,输入x必须是张量

您应该使用以下内容:

x = tf.placeholder("float", [None,500])
mean, std = tf.nn.moments(x, axes=[0])

sess = tf.Session()
sess.run(tf.global_variables_initializer())
sample_mean, sample_std = sess.run([mean, std],
    feed_dict={x: np.random.normal(0,1,[1,500])})
注意:由于只有一个数据值,因此此特定计算没有多大意义。您可能希望将形状增加到类似于[32500]的值,或者更可能将轴从[0]更改为[1]


无论如何,尽管计算的标准偏差等于0,但计算将无误差地完成,因为力矩是沿一维轴计算的。

方差不就是标准偏差的平方吗?i、 e.方差=tf.平方(标准)