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

首頁 > 編程 > Python > 正文

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

2020-01-04 15:51:26
字體:
來源:轉載
供稿:網友

TensorFLow能夠識別的圖像文件,可以通過numpy,使用tf.Variable或者tf.placeholder加載進python/303709.html">tensorflow;也可以通過自帶函數(tf.read)讀取,當圖像文件過多時,一般使用pipeline通過隊列的方法進行讀取。下面我們介紹兩種生成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自帶函數讀取

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() 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴山县| 常宁市| 河东区| 苏尼特右旗| 上杭县| 眉山市| 田林县| 宁陕县| 黄平县| 安阳市| 青冈县| 南投市| 鹤山市| 察哈| 东丰县| 永寿县| 珲春市| 洞头县| 长春市| 潍坊市| 恩施市| 青州市| 本溪市| 聂拉木县| 璧山县| 云安县| 新绛县| 山东省| 武威市| 阳信县| 绍兴市| 泰来县| 龙州县| 丹棱县| 库伦旗| 松原市| 舟山市| 襄城县| 永胜县| 历史| 贵定县|