Advertisement
alseambusher

Final2

Aug 8th, 2019
11,699
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.30 KB | None | 0 0
  1. import skvideo.io
  2. import skvideo.datasets
  3. import tensorflow as tf
  4. from tensorflow.keras.applications.resnet50 import ResNet50
  5. from tensorflow.keras.applications.resnet50 import preprocess_input, decode_predictions
  6.  
  7. # enabling eager execution for easier explanation
  8. tf.enable_eager_execution()
  9.  
  10. model = ResNet50(weights='imagenet')
  11.  
  12. reader = skvideo.io.FFmpegReader(skvideo.datasets.bigbuckbunny(),
  13.                              inputdict={},
  14.                              outputdict={})
  15.  
  16.  
  17. def gen_frames():
  18.     for frame in reader.nextFrame():
  19.         yield frame
  20.  
  21.  
  22. dataset = tf.data.Dataset.from_generator(gen_frames, tf.int64)
  23.  
  24. def preprocess(frame):
  25.     x = tf.image.resize_bilinear(frame, [224, 224])
  26.     x = preprocess_input(x)
  27.     return x
  28.  
  29. dataset = dataset.batch(64).map(preprocess, 10).prefetch(1)
  30.  
  31. def predict():
  32.     with tf.device("/gpu:0"):
  33.         for frames in dataset:
  34.             yield model.predict(frames.numpy())
  35.  
  36. dataset2 = tf.data.Dataset.from_generator(predict, tf.float64)
  37.  
  38. def postprocess(output):
  39.     # do some post processing
  40.     return tf.argsort(output)[:3]
  41.  
  42. dataset2 = dataset2.map(postprocess, 10)
  43.  
  44. # unbatch the output if needed
  45. # dataset2 = dataset2.apply(tf.data.experimental.unbatch())
  46.  
  47. for value in dataset2:
  48.     print(decode_predictions(value.numpy()))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement