wew*_*lie 16 python tensorflow
使用标准Tensorflow:
import tensorflow as tf
x = tf.convert_to_tensor([0,1,2,3,4], dtype=tf.int64)
y = x + 10
sess = tf.InteractiveSession()
sess.run([
tf.local_variables_initializer(),
tf.global_variables_initializer(),
])
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(coord=coord)
z = y.eval(feed_dict={x:[0,1,2,3,4]})
print(z)
print(type(z))
coord.request_stop()
coord.join(threads)
sess.close()
Run Code Online (Sandbox Code Playgroud)
输出:
[10 11 12 13 14]
<class 'numpy.ndarray'>
Run Code Online (Sandbox Code Playgroud)
急切执行:
import tensorflow as tf
tf.enable_eager_execution() # requires r1.7
x = tf.convert_to_tensor([0,1,2,3,4], dtype=tf.int64)
y = x + 10
print(y)
print(type(y))
Run Code Online (Sandbox Code Playgroud)
输出:
tf.Tensor([10 11 12 13 14], shape=(5,), dtype=int64)
<class 'EagerTensor'>
Run Code Online (Sandbox Code Playgroud)
如果我尝试y.eval(),我会NotImplementedError: eval not supported for Eager Tensors.有没有办法转换这个?这使得Eager Tensorflow完全无价值.
编辑:
有一个函数tf.make_ndarray应该将张量转换为numpy数组,但它会导致AttributeError: 'EagerTensor' object has no attribute 'tensor_shape'.
ash*_*ash 21
有一个.numpy()功能你可以使用,或者你也可以numpy.array(y).例如:
import tensorflow as tf
import numpy as np
tf.enable_eager_execution()
x = tf.constant([1., 2.])
print(type(x)) # <type 'EagerTensor'>
print(type(x.numpy())) # <type 'numpy.ndarray'>
print(type(np.array(x))) # <type 'numpy.ndarray'>
Run Code Online (Sandbox Code Playgroud)
请参阅急切执行指南中的部分.
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
10960 次 |
| 最近记录: |