Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- def big_boys(num, sign, weight):
- totals = []
- sign_num = sign.get(num)
- for j in range(10):
- weight_row = weight.get(j)
- total = 0
- for k in range(9):
- total += sign_num[k] * weight_row[k]
- totals.append(total)
- return totals
- def tribunal(num ,total_sum_weight, num1, num2, num3):
- def karcer(num_tec, sign, weight):
- # print(list, "- до поощерения")
- j = 0
- attribute_of_num = sign.get(num_tec)
- weight_new = weight.get(num_tec)
- for j in range(9):
- if attribute_of_num[j] == 1:
- weight_new[j] -= 1
- # print(weight.get(num_tec), "Вес после наказания")
- return
- def premia(num_tec, sign, weight):
- # print(list, "- до поощерения")
- j = 0
- attribute_of_num = sign.get(num_tec)
- weight_new = weight.get(num_tec)
- for j in range(9):
- if attribute_of_num[j] == 1:
- weight_new[j] += 1
- # print(weight.get(num_tec), "Вес после поощерения")
- return
- # print(total_sum_weight)
- max_sum = max(total_sum_weight)
- for i in range(10):
- if total_sum_weight[i] == max_sum:
- if (i == num1 or i == num2 or i == num3) and total_sum_weight[i] <= max_sum:
- # print(i, "Выбранная цифра", weight.get(i), " - поощеряем")
- premia(i, sign, weight)
- elif (i != num1 or i != num2 or i != num3) and total_sum_weight[i] == max_sum:
- karcer(i, sign, weight)
- # print(i, "Плохая цифра", weight.get(i), " - наказываем")
- return("Я все сделал")
- weight = {0:[5,1,3,4,2,8,9,5,3], #признак цифры 0
- 1:[3,2,2,7,9,5,4,9,6], #признак цифры 1
- 2:[3,5,6,3,2,2,5,6,8], #признак цифры 2
- 3:[5,7,8,0,4,6,7,9,3], #признак цифры 3
- 4:[7,4,1,5,0,4,8,5,4], #признак цифры 4
- 5:[2,2,9,9,5,3,2,3,5], #признак цифры 5
- 6:[0,9,6,4,2,8,4,6,7], #признак цифры 6
- 7:[5,7,8,1,3,5,6,6,9], #признак цифры 7
- 8:[3,6,1,8,6,5,1,3,2], #признак цифры 8
- 9:[5,2,5,4,1,3,1,2,3]} #признак цифры 9
- weight_old = {0:[5,1,3,4,2,8,9,5,3], #признак цифры 0
- 1:[3,2,2,7,9,5,4,9,6], #признак цифры 1
- 2:[3,5,6,3,2,2,5,6,8], #признак цифры 2
- 3:[5,7,8,0,4,6,7,9,3], #признак цифры 3
- 4:[7,4,1,5,0,4,8,5,4], #признак цифры 4
- 5:[2,2,9,9,5,3,2,3,5], #признак цифры 5
- 6:[0,9,6,4,2,8,4,6,7], #признак цифры 6
- 7:[5,7,8,1,3,5,6,6,9], #признак цифры 7
- 8:[3,6,1,8,6,5,1,3,2], #признак цифры 8
- 9:[5,2,5,4,1,3,1,2,3]} #признак цифры 9
- sign = {0:[1,1,0,1,0,1,0,1,1], #признак цифры 0
- 1:[0,0,1,1,0,0,0,1,0], #признак цифры 1
- 2:[0,1,0,1,0,0,1,0,1], #признак цифры 2
- 3:[0,1,1,0,1,0,1,0,0], #признак цифры 3
- 4:[1,0,0,1,1,0,0,1,0], #признак цифры 4
- 5:[1,1,0,0,1,0,0,1,1], #признак цифры 5
- 6:[0,0,1,0,1,1,0,1,1], #признак цифры 6
- 7:[0,1,1,0,0,1,0,0,0], #признак цифры 7
- 8:[1,1,0,1,1,1,0,1,1], #признак цифры 8
- 9:[1,1,0,1,1,0,1,0,0]} #признак цифры 9
- l0 = [0 for i in range(0,10)]
- l1 = [1 for i in range(0,10)]
- l2 = [2 for i in range(0,10)]
- l3 = [3 for i in range(0,10)]
- l4 = [4 for i in range(0,10)]
- l5 = [5 for i in range(0,10)]
- l6 = [6 for i in range(0,10)]
- l7 = [7 for i in range(0,10)]
- l8 = [8 for i in range(0,10)]
- l9 = [9 for i in range(0,10)]
- num_posl = l0+l1+l2+l3+l4+l5+l6+l7+l8+l9
- random.shuffle(num_posl)
- print("Введите 3 цифры, под которые будете обучать персептрон")
- number1 = int(input())
- number2 = int(input())
- number3 = int(input())
- for i in range(len(num_posl)):
- print("Номер итерации", i)
- total_weight = big_boys(num_posl[i], sign, weight)
- tribunal(num_posl, total_weight, number1, number2, number3)
- #print(sum, " - сумма после", i, "итераций, когда на вход персептрона пришла", num_posl[i])
- #print("Вес после", i, " итерации - ", weight)
- print('\n',weight_old, "Начальный вес\n", weight, " - Итоговый вес после 100 итераций")
Advertisement
Add Comment
Please, Sign In to add comment