Advertisement
EditorRUS

Captcha recognizer

Feb 26th, 2017
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.06 KB | None | 0 0
  1. def create_layer(layer_size, input_size, sigma_function=lambda val:val):
  2.     from random import random
  3.     return (
  4.             [
  5.                 [
  6.                     [
  7.                         [random() for w in range(input_size)]
  8.                         for x in range(layer_size)
  9.                     ],
  10.                     0,
  11.                     sigma_function
  12.                 ]
  13.             ]
  14.             )
  15.  
  16. def pass_data(data_in, data_thru):
  17.     from functools import reduce
  18.     from itertools import repeat
  19.    
  20.     if not len(data_thru):
  21.         return data_in
  22.     in_len = len(data_thru[0][0])
  23.     if len(data_in) != in_len:
  24.         return data_in
  25.  
  26.     return (
  27.         reduce(
  28.             lambda data, layer: (
  29.                 [
  30.                     sigma(
  31.                         sum(
  32.                             (val*mul+bias for val, mul in zip(data, weights))
  33.                             ) /
  34.                         len(weights)
  35.                         )
  36.                     for weights, bias, sigma in zip(layer[0], repeat(layer[1]), repeat(layer[2]))
  37.                 ]
  38.             ),
  39.             data_thru,
  40.             data_in
  41.             )
  42.         )
  43.  
  44. def error_function(interval_set):
  45.     from itertools import combinations
  46.    
  47.     def intersection_coeff(interval_a, interval_b):
  48.         best_min = max(interval_a[0], interval_b[0])
  49.         best_max = min(interval_a[1], interval_b[1])
  50.         least_len = min(interval_a[1]-interval_a[0],
  51.                         interval_b[1]-interval_b[0])
  52.        
  53.         intersection = ((best_min, best_min)
  54.                         if best_min >= best_max
  55.                         else (best_min, best_max))
  56.        
  57.         full_len = intersection[1] - intersection[0]
  58.         return full_len / least_len
  59.  
  60.     def intersection_cost(cost):
  61.         return cost**2
  62.  
  63.     pipe = lambda inter_pair: intersection_cost(intersection_coeff(inter_pair[0], inter_pair[1]))
  64.     all_combinations = combinations(interval_set, 2)
  65.     intersections = map(pipe, all_combinations)
  66.     return sum(intersections)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement