2015-12-04 38 views

Trả lời

37

Bất kỳ tensor trả về bởi Session.run hoặc eval là một mảng NumPy.

>>> print(type(tf.Session().run(tf.constant([1,2,3])))) 
<class 'numpy.ndarray'> 

Hoặc:

>>> sess = tf.InteractiveSession() 
>>> print(type(tf.constant([1,2,3]).eval())) 
<class 'numpy.ndarray'> 

Hoặc, tương đương:

>>> sess = tf.Session() 
>>> with sess.as_default(): 
>>> print(type(tf.constant([1,2,3]).eval())) 
<class 'numpy.ndarray'> 
51

Để chuyển đổi từ hàng chục thành mảng có nhiều mảng, bạn có thể chỉ cần chạy .eval() trên dây dẫn đã chuyển đổi.

+2

để làm rõ: yourtensor.eval() – vanilla

3

Bạn cần phải:

  1. mã hóa các tensor hình ảnh trong một số định dạng (jpeg, png) để tensor nhị phân
  2. đánh giá (chạy) các tensor nhị phân trong một phiên
  3. biến nhị phân để dòng
  4. thức ăn để hình ảnh PIL
  5. (không bắt buộc) displaythe hình ảnh với matplotlib

Mã:

import tensorflow as tf 
import matplotlib.pyplot as plt 
import PIL 

... 

image_tensor = <your decoded image tensor> 
jpeg_bin_tensor = tf.image.encode_jpeg(image_tensor) 

with tf.Session() as sess: 
    # display encoded back to image data 
    jpeg_bin = sess.run(jpeg_bin_tensor) 
    jpeg_str = StringIO.StringIO(jpeg_bin) 
    jpeg_image = PIL.Image.open(jpeg_str) 
    plt.imshow(jpeg_image) 

Điều này làm việc cho tôi. Bạn có thể thử nó trong một máy tính xách tay ipython. Chỉ cần đừng quên để thêm dòng sau:

%matplotlib inline 
1

Có lẽ bạn có thể thử, phương pháp này:

import tensorflow as tf 
W1 = tf.Variable(tf.random_uniform([1], -1.0, 1.0)) 
init = tf.global_variables_initializer() 
sess = tf.Session() 
sess.run(init) 
array = W1.eval(sess) 
print (array) 
Các vấn đề liên quan