运行此代码时,它仅返回0,为什么呢?
var test = Math.Asin(3/4);
答案 0 :(得分:1)
这是因为您使用3/4,程序将了解它们都是整数。 (整数)3 /(整数)4的结果为0。因此,Math.Asin((double)3/4)
的结果。
如果要获取Math.Asin(0.75f)的结果,则应使用Math.Asin(3.0f/4.0f)
或import tensorflow as tf
from datetime import datetime
with tf.device('/device:GPU:0'):
var = tf.Variable(tf.ones([100000], dtype=tf.dtypes.float32), dtype=tf.dtypes.float32)
@tf.function
def foo():
return tf.while_loop(c, b, [i], parallel_iterations=1000) #tweak
@tf.function
def b(i):
var.assign(tf.tensor_scatter_nd_update(var, tf.reshape(i, [-1,1]), tf.constant([0], dtype=tf.dtypes.float32)))
return tf.add(i,1)
with tf.device('/device:GPU:0'):
i = tf.constant(0)
c = lambda i: tf.less(i,100000)
start = datetime.today()
with tf.device('/device:GPU:0'):
foo()
print(datetime.today()-start)
或任何具有浮点数的格式。希望这会有所帮助。