国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 分宜县| 淮安市| 织金县| 庆阳市| 民权县| 南充市| 武汉市| 泸州市| 晋城| 湘西| 翁源县| 原平市| 响水县| 高安市| 丰都县| 五常市| 南丹县| 福州市| 鹤壁市| 金堂县| 辽源市| 介休市| 康保县| 若羌县| 赤水市| 唐河县| 涟水县| 肇庆市| 朝阳县| 河北省| 信宜市| 河池市| 岑溪市| 榆中县| 宽甸| 辽宁省| 新田县| 诏安县| 克拉玛依市| 枣阳市| 平湖市|