国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python生成tensorflow輸入輸出的圖像格式的方法

2020-02-22 23:13:51
字體:
供稿:網(wǎng)友

TensorFLow能夠識別的圖像文件,可以通過numpy,使用tf.Variable或者tf.placeholder加載進(jìn)tensorflow;也可以通過自帶函數(shù)(tf.read)讀取,當(dāng)圖像文件過多時,一般使用pipeline通過隊列的方法進(jìn)行讀取。下面我們介紹兩種生成tensorflow的圖像格式的方法,供給tensorflow的graph的輸入與輸出。

import cv2 import numpy as np import h5py  height = 460 width = 345  with h5py.File('make3d_dataset_f460.mat','r') as f:   images = f['images'][:]    image_num = len(images)  data = np.zeros((image_num, height, width, 3), np.uint8) data = images.transpose((0,3,2,1)) 

先生成圖像文件的路徑:ls *.jpg> list.txt

import cv2 import numpy as np  image_path = './' list_file = 'list.txt' height = 48 width = 48  image_name_list = [] # read image with open(image_path + list_file) as fid:   image_name_list = [x.strip() for x in fid.readlines()] image_num = len(image_name_list)  data = np.zeros((image_num, height, width, 3), np.uint8)  for idx in range(image_num):   img = cv2.imread(image_name_list[idx])   img = cv2.resize(img, (height, width))   data[idx, :, :, :] = img 

2 Tensorflow自帶函數(shù)讀取

def get_image(image_path):   """Reads the jpg image from image_path.   Returns the image as a tf.float32 tensor   Args:     image_path: tf.string tensor   Reuturn:     the decoded jpeg image casted to float32   """   return tf.image.convert_image_dtype(     tf.image.decode_jpeg(       tf.read_file(image_path), channels=3),     dtype=tf.uint8) 

pipeline讀取方法

# Example on how to use the tensorflow input pipelines. The explanation can be found here ischlag.github.io. import tensorflow as tf import random from tensorflow.python.framework import ops from tensorflow.python.framework import dtypes  dataset_path   = "/path/to/your/dataset/mnist/" test_labels_file = "test-labels.csv" train_labels_file = "train-labels.csv"  test_set_size = 5  IMAGE_HEIGHT = 28 IMAGE_WIDTH  = 28 NUM_CHANNELS = 3 BATCH_SIZE  = 5  def encode_label(label):  return int(label)  def read_label_file(file):  f = open(file, "r")  filepaths = []  labels = []  for line in f:   filepath, label = line.split(",")   filepaths.append(filepath)   labels.append(encode_label(label))  return filepaths, labels  # reading labels and file path train_filepaths, train_labels = read_label_file(dataset_path + train_labels_file) test_filepaths, test_labels = read_label_file(dataset_path + test_labels_file)  # transform relative path into full path train_filepaths = [ dataset_path + fp for fp in train_filepaths] test_filepaths = [ dataset_path + fp for fp in test_filepaths]  # for this example we will create or own test partition all_filepaths = train_filepaths + test_filepaths all_labels = train_labels + test_labels  all_filepaths = all_filepaths[:20] all_labels = all_labels[:20]  # convert string into tensors all_images = ops.convert_to_tensor(all_filepaths, dtype=dtypes.string) all_labels = ops.convert_to_tensor(all_labels, dtype=dtypes.int32)  # create a partition vector partitions = [0] * len(all_filepaths) partitions[:test_set_size] = [1] * test_set_size random.shuffle(partitions)  # partition our data into a test and train set according to our partition vector train_images, test_images = tf.dynamic_partition(all_images, partitions, 2) train_labels, test_labels = tf.dynamic_partition(all_labels, partitions, 2)  # create input queues train_input_queue = tf.train.slice_input_producer(                   [train_images, train_labels],                   shuffle=False) test_input_queue = tf.train.slice_input_producer(                   [test_images, test_labels],                   shuffle=False)  # process path and string tensor into an image and a label file_content = tf.read_file(train_input_queue[0]) train_image = tf.image.decode_jpeg(file_content, channels=NUM_CHANNELS) train_label = train_input_queue[1]  file_content = tf.read_file(test_input_queue[0]) test_image = tf.image.decode_jpeg(file_content, channels=NUM_CHANNELS) test_label = test_input_queue[1]  # define tensor shape train_image.set_shape([IMAGE_HEIGHT, IMAGE_WIDTH, NUM_CHANNELS]) test_image.set_shape([IMAGE_HEIGHT, IMAGE_WIDTH, NUM_CHANNELS])   # collect batches of images before processing train_image_batch, train_label_batch = tf.train.batch(                   [train_image, train_label],                   batch_size=BATCH_SIZE                   #,num_threads=1                   ) test_image_batch, test_label_batch = tf.train.batch(                   [test_image, test_label],                   batch_size=BATCH_SIZE                   #,num_threads=1                   )  print "input pipeline ready"  with tf.Session() as sess:    # initialize the variables  sess.run(tf.initialize_all_variables())    # initialize the queue threads to start to shovel data  coord = tf.train.Coordinator()  threads = tf.train.start_queue_runners(coord=coord)   print "from the train set:"  for i in range(20):   print sess.run(train_label_batch)   print "from the test set:"  for i in range(10):   print sess.run(test_label_batch)   # stop our queue threads and properly close the session  coord.request_stop()  coord.join(threads)  sess.close()             
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 卢湾区| 保定市| 河西区| 青州市| 老河口市| 宁德市| 普洱| 武城县| 武安市| 大新县| 毕节市| 崇信县| 榆社县| 巴林右旗| 阳高县| 南京市| 瓮安县| 新津县| 南丰县| 德惠市| 江阴市| 连州市| 桐庐县| 石泉县| 张家口市| 桃园县| 永昌县| 灌南县| 苏州市| 石首市| 广安市| 梁河县| 行唐县| 万荣县| 涪陵区| 晋城| 运城市| 大同县| 普洱| 百色市| 红原县|