Files
@ 5f42b982809c
Branch filter:
Location: OneEye/exp/kerokero/k_util.py - annotation
5f42b982809c
1.1 KiB
text/x-python
deferred data preprocessing saving space
247811dfb9be 006c6f1aab13 247811dfb9be 247811dfb9be 006c6f1aab13 006c6f1aab13 006c6f1aab13 006c6f1aab13 006c6f1aab13 006c6f1aab13 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be | import random
import numpy as np
import keras.backend as K
def averageDistance(yTrue,yPred):
squares=K.square(yTrue-yPred)
distances=K.sqrt(K.sum(squares,-1))
return K.mean(distances,-1)
def transform(image,label):
if random.choice((True,False)):
image=image[::-1] # reflect vertically
label[...,1]*=-1 # reflect y values
label=label[::-1,...] # switch back to counter-clockwise order
rot=random.randint(0,3)
image=np.rot90(image,rot)
if rot==1:
label=label[...,::-1]
label[...,1]*=-1
elif rot==2:
label*=-1
elif rot==3:
label=label[...,::-1]
label[...,0]*=-1
k=0
val=2
for (i,point) in enumerate(label): # rotate the upper-leftmost point to the first position
v=sum(point)
if v<val:
k=i
val=v
label=np.concatenate((label[k:],label[:k]))
return (image,label)
def generateData(images,labels,batch_size=32):
n=len(images)
keys=list(range(n))
while True:
random.shuffle(keys)
for i in range(0,n,batch_size):
ks=keys[i:i+batch_size]
imgs=images[ks]
labs=labels[ks]
for j in range(len(ks)):
(imgs[j],labs[j])=transform(imgs[j],labs[j])
yield (imgs,labs)
|