Computer >> Máy Tính >  >> Lập trình >> Python

Tensorflow có thể được sử dụng như thế nào để tạo một cặp bằng cách sử dụng đường dẫn tệp cho tập dữ liệu hoa?

Để tạo một cặp (hình ảnh, nhãn), đầu tiên đường dẫn được chuyển đổi thành danh sách các thành phần đường dẫn. Sau đó, giá trị thứ hai đến giá trị cuối cùng được thêm vào thư mục. Sau đó, nhãn được mã hóa thành định dạng số nguyên. Chuỗi nén được chuyển đổi thành tensor và sau đó được định hình lại thành kích thước cần thiết.

Đọc thêm: TensorFlow là gì và cách Keras làm việc với TensorFlow để tạo Mạng thần kinh?

Chúng tôi sẽ sử dụng tập dữ liệu về hoa, chứa hình ảnh của hàng nghìn bông hoa. Nó chứa 5 thư mục con và có một thư mục con cho mọi lớp.

Chúng tôi đang sử dụng Google Colaboratory để chạy đoạn mã dưới đây. Google Colab hoặc Colaboratory giúp chạy mã Python qua trình duyệt và không yêu cầu cấu hình cũng như quyền truy cập miễn phí vào GPU (Đơn vị xử lý đồ họa). Colaboratory đã được xây dựng trên Jupyter Notebook.

print("Function to convert file path to (image,label) pair")
print("First, path is converted to list of path components")
print("Then, the second to last value is added to class directory")
print("The label is integer encoded")
def get_label(file_path):
   parts = tf.strings.split(file_path, os.path.sep)
   one_hot = parts[-2] == class_names
   return tf.argmax(one_hot)

print("The compressed string is converted to a 3 dimensional int tensor")
print("The image is resized to the required size")
def decode_img(img):
   img = tf.image.decode_jpeg(img, channels=3)
   return tf.image.resize(img, [img_height, img_width])

print("The raw data is loaded from the file as a string value")
def process_path(file_path):
   label = get_label(file_path)
   img = tf.io.read_file(file_path)
   img = decode_img(img)
   return img, label

Tín dụng mã:https://www.tensorflow.org/tutorials/load_data/images

Đầu ra

Function to convert file path to (image,label) pair
First, path is converted to list of path components
Then, the second to last value is added to class directory
The label is integer encoded
The compressed string is converted to a 3 dimensional int tensor
The image is resized to the required size
The raw data is loaded from the file as a string value

Giải thích

  • Một hàm 'get_label' được xác định để chuyển đổi đường dẫn tệp thành một cặp (hình ảnh, nhãn).
  • Đường dẫn tệp được chuyển đổi thành danh sách các thành phần đường dẫn.
  • Giá trị thứ hai đến giá trị cuối cùng được thêm vào thư mục lớp.
  • Tiếp theo, nhãn được mã hóa dưới dạng số nguyên.
  • Một hàm khác có tên 'decode_img' được sử dụng để thay đổi kích thước hình ảnh và trả lại hình ảnh đó.
  • Đầu tiên, chuỗi nén được chuyển đổi thành một tensor số nguyên ba chiều, sau đó được thay đổi kích thước.
  • Một hàm khác có tên 'process_path' đã được xác định, tải dữ liệu thô từ tệp dưới dạng giá trị chuỗi.