2016-04-28 34 views
17

Tôi có hai mảng NumPyLàm thế nào để chuyển đổi mảng numpy sang định dạng TensorFlow tiêu chuẩn?

  • một có chứa hình ảnh captcha và
  • khác có chứa các nhãn tương ứng (trong một hot-định dạng vector)

Tôi muốn tải những thành TensorFlow vì vậy tôi có thể phân loại chúng bằng mạng thần kinh. Điều này có thể giải quyết như thế nào ?

Hình dạng nào cần phải có?

Thông tin - hình ảnh của tôi là 60 (chiều cao) bởi 160 (chiều rộng) pixel mỗi và mỗi người trong số họ có 5 ký tự chữ và số

Here is a sample image. Mỗi nhãn 5 bằng 62 mảng.

+0

Ngoài ra kiểm tra các ví dụ MNIST, https://www.tensorflow.org/versions/r0.8/tutorials/mnist/beginners/index.html –

Trả lời

5

Bạn có thể sử dụng trình giữ chỗ và feed_dict.

Giả sử chúng ta có mảng NumPy như thế này:

trX = np.linspace(-1, 1, 101) 
trY = 2 * trX + np.random.randn(*trX.shape) * 0.33 

Bạn có thể tuyên bố hai placeholders:

X = tf.placeholder("float") 
Y = tf.placeholder("float") 

Sau đó, sử dụng các placeholders (X và Y) trong mô hình của bạn, chi phí, vv .: mô hình = tf.mul (X, w) ... Y ... ...

Cuối cùng, khi bạn chạy mô hình/chi phí, hãy nạp mảng sumpy bằng feed_dict:

with tf.Session() as sess: 
.... 
    sess.run(model, feed_dict={X: trY, Y: trY}) 
+0

thực hiện điều này phương pháp cho phép tôi sử dụng trong các chức năng lưu lượng xây dựng tensor như hàng loạt tiếp theo? –

+0

@KeshavChoudhary đợt tiếp theo trong MNIST? Chắc chắn, nhưng bạn cần sửa đổi một chút cho tập dữ liệu của mình. –

+0

Tôi muốn xây dựng một tập dữ liệu như MNIST nhưng với hình ảnh của riêng tôi, tôi là người mới bắt đầu với các mạng TensorFlow và thần kinh. Cách dễ nhất để tạo tập dữ liệu như MNIST để tôi có thể làm theo hướng dẫn cơ bản là gì? –

7

Bạn có thể sử dụng tf.pack (tf.stack trong TensorFlow 1.0.0) Phương pháp cho mục đích này. Dưới đây là làm thế nào để đóng gói một hình ảnh ngẫu nhiên của các loại numpy.ndarray thành một Tensor:

import numpy as np 
import tensorflow as tf 
random_image = np.random.randint(0,256, (300,400,3)) 
random_image_tensor = tf.pack(random_image) 
tf.InteractiveSession() 
evaluated_tensor = random_image_tensor.eval() 

UPDATE: để chuyển đổi một đối tượng Python để một tensor bạn có thể sử dụng chức năng tf.convert_to_tensor.

+2

không có tf.pack – Chaine

+1

Trong dấu ngoặc đơn bên phải 'tf.pack' Tôi đã đề cập rằng bạn nên sử dụng 'tf.stack' trong các phiên bản mới hơn nếu TensorFlow! – Ali

+0

Phải .. cảm ơn nhé! – Chaine

11

Bạn có thể sử dụng tf.convert_to_tensor():

import tensorflow as tf 
import numpy as np 

data = [[1,2,3],[4,5,6]] 
data_np = np.asarray(data, np.float32) 

data_tf = tf.convert_to_tensor(data_np, np.float32) 

sess = tf.InteractiveSession() 
print(data_tf.eval()) 

sess.close() 
Các vấn đề liên quan