Files
@ 7cb01d4080c9
Branch filter:
Location: OneEye/exp/kerokero/k_util.py - annotation
7cb01d4080c9
1.1 KiB
text/x-python
a hinted neural network (failed)
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)
|