Моє рішення
import numpy as np
def layer_1_z(x, w1, b1):
return 1 / w1 * x + b1
def layer_2(x, w1, b1, w2, b2):
y1 = layer_1_z(x, w1, b1)
y2 = y1 - np.floor(y1)
return w2 * y2 + b2
def layer_2_activation(x, w1, b1, w2, b2):
y2 = layer_2(x, w1, b1, w2, b2)
# return 1 / (1 + np.exp(-y2))
return (y2 > 0) * 1
def loss(param):
w1, b1, w2, b2 = param
x = np.arange(0, 1000, 1)
y_hat = layer_2_activation(x, w1, b1, w2, b2)
y_true = (x % 2 > 0) * 1
return sum(np.square(y_hat - y_true))
# %%
from sko.GA import GA
ga = GA(func=loss, n_dim=4, size_pop=50, max_iter=100, lb=[1, 0, 1, 0], ub=[32, 1, 2, 1], precision=1)
best_x, best_y = ga.run()
print('best_x:', best_x, '\n', 'best_y:', best_y)
for x in range(1001, 1200):
y_hat = layer_2_activation(x, *best_x)
print('input:{},divide by 2:{}'.format(x, y_hat == 0))
вхід: 1001, розділити на 2: помилковий вхід: 1002, ділити на 2: Справжній вхід: 1003, ділити на 2: помилковий вхід: 1004, ділити на 2: Справжній вхід: 1005, ділити на 2: помилковий вхід: 1006, ділити на 2: Справжній вхід: 1007, розділити на 2: Неправдивий вхід: 1008, ділити на 2: Справжній вхід: 1009, ділити на 2: Неправильний вхід: 1010, ділити на 2: Справжній вхід: 1011, ділити на 2: Неправдивий вхід : 1012, ділити на 2: Справжній вхід: 1013, ділити на 2: Неправдивий вхід: 1014, ділити на 2: Справжній вхід: 1015, ділити на 2: Неправдивий вхід: 1016, ділити на 2: Справжній вхід: 1017, ділити на 2: помилковий вхід: 1018, розділити на 2: істинний вхід: 1019, ділити на 2: помилковий вхід: 1020, ділити на 2: істинний вхід: 1021, ділити на 2: помилковий вхід: 1022, ділити на 2: істинний вхід: 1023, розділити на 2: Неправдивий вхід: 1024, ділити на 2: Справжній вхід: 1025, ділити на 2: Неправильний вхід: 1026, ділити на 2: Справжній вхід: 1027, ділити на 2: Неправдивий вхід: 1028, ділити на 2 : Справжнє введення: 1029, розділити на 2:Неправдивий вхід: 1030, ділити на 2: Справжній вхід: 1031, ділити на 2: Неправдивий вхід: 1032, ділити на 2: Справжній вхід: 1033, ділити на 2: Неправдивий вхід: 1034, ділити на 2: Істинний вхід: 1035, ділити на 2: помилковий вхід: 1036, ділити на 2: істинний вхід: 1037, ділити на 2: помилковий вхід: 1038, ділити на 2: істинний вхід: 1039, ділити на 2: помилковий вхід: 1040, ділити на 2: істинно вхід: 1041, розділити на 2: помилковий вхід: 1042, ділити на 2: Справжній вхід: 1043, ділити на 2: помилковий вхід: 1044, ділити на 2: Справжній вхід: 1045, ділити на 2: помилковий вхід: 1046, ділити на 2: Справжній вхід: 1047, розділити на 2: Неправдивий вхід: 1048, ділити на 2: Справжній вхід: 1049, ділити на 2: Неправильний вхід: 1050, ділити на 2: Справжній вхід: 1051, ділити на 2: Неправдивий вхід : 1052, ділити на 2: Справжній вхід: 1053, ділити на 2: Неправдивий вхід: 1054, ділити на 2: Справжній вхід: 1055, ділити на 2: Неправдивий вхід: 1056, ділити на 2: Справжній вхід: 1057, ділити на 2: помилковий вхід: 1058, розділити на 2:Справжній вхід: 1059, розділити на 2: помилковий вхід: 1060, ділити на 2: істинний вхід: 1061, ділити на 2: помилковий вхід: 1062, ділити на 2: істинний вхід: 1063, ділити на 2: помилковий вхід: 1064, ділити на 2: Справжній вхід: 1065, ділити на 2: Неправдивий вхід: 1066, ділити на 2: Справжній вхід: 1067, ділити на 2: Неправильний вхід: 1068, ділити на 2: Справжній вхід: 1069, ділити на 2: Неправдивий вхід: 1070, ділити на 2: Справжній вхід: 1071, ділити на 2: Неправдивий вхід: 1072, ділити на 2: Справжній вхід: 1073, ділити на 2: Неправдивий вхід: 1074, ділити на 2: Справжній вхід: 1075, ділити на 2: помилковий вхід: 1076, розділити на 2: істинний вхід: 1077, ділити на 2: помилковий вхід: 1078, ділити на 2: істинний вхід: 1079, ділити на 2: помилковий вхід: 1080, ділити на 2: істинний вхід : 1081, розділити на 2: Неправдивий вхід: 1082, ділити на 2: Справжній вхід: 1083, ділити на 2: Неправильний вхід: 1084, ділити на 2: Справжній вхід: 1085, ділити на 2: Неправдивий вхід: 1086, ділити на 2: Справжній вхід: 1087, розділити на 2:Неправдивий вхід: 1088, розділити на 2: Справжній вхід: 1089, ділити на 2: Неправдивий вхід: 1090, ділити на 2: Справжній вхід: 1091, ділити на 2: Неправдивий вхід: 1092, ділити на 2: Істинний вхід: 1093, ділити на 2: помилковий вхід: 1094, ділити на 2: істинний вхід: 1095, ділити на 2: помилковий вхід: 1096, ділити на 2: істинний вхід: 1097, ділити на 2: помилковий вхід: 1098, ділити на 2: істинно вхід: 1099, розділити на 2: помилковий вхід: 1100, ділити на 2: Справжній вхід: 1101, ділити на 2: помилковий вхід: 1102, ділити на 2: Справжній вхід: 1103, ділити на 2: помилковий вхід: 1104, ділити на 2: Справжній вхід: 1105, розділити на 2: Неправдивий вхід: 1106, ділити на 2: Справжній вхід: 1107, ділити на 2: Неправильний вхід: 1108, ділити на 2: Справжній вхід: 1109, ділити на 2: Неправдивий вхід : 1110, ділити на 2: Справжній вхід: 1111, ділити на 2: Неправдивий вхід: 1112, ділити на 2: Справжній вхід: 1113, ділити на 2: Неправдивий вхід: 1114, ділити на 2: Справжній вхід: 1115, ділити на 2: помилковий вхід: 1116, розділити на 2:Справжній вхід: 1117, розділити на 2: помилковий вхід: 1118, ділити на 2: істинний вхід: 1119, ділити на 2: помилковий вхід: 1120, ділити на 2: істинний вхід: 1121, ділити на 2: помилковий вхід: 1122, ділити на 2: Справжній вхід: 1123, ділити на 2: Неправдивий вхід: 1124, ділити на 2: Справжній вхід: 1125, ділити на 2: Неправильний вхід: 1126, ділити на 2: Справжній вхід: 1127, ділити на 2: Неправдивий вхід: 1128, ділити на 2: Справжній вхід: 1129, ділити на 2: Неправдивий вхід: 1130, ділити на 2: Справжній вхід: 1131, ділити на 2: Неправдивий вхід: 1132, ділити на 2: Справжній вхід: 1133, ділити на 2: помилковий вхід: 1134, розділити на 2: істинний вхід: 1135, ділити на 2: помилковий вхід: 1136, ділити на 2: істинний вхід: 1137, ділити на 2: помилковий вхід: 1138, ділити на 2: істинний вхід : 1139, розділити на 2: Неправдивий вхід: 1140, ділити на 2: Справжній вхід: 1141, ділити на 2: Неправильний вхід: 1142, ділити на 2: Справжній вхід: 1143, ділити на 2: Неправдивий вхід: 1144, ділити на 2: Справжній вхід: 1145, розділити на 2:Неправдивий вхід: 1146, розділити на 2: Справжній вхід: 1147, ділити на 2: Неправдивий вхід: 1148, ділити на 2: Справжній вхід: 1149, ділити на 2: Неправдивий вхід: 1150, ділити на 2: Істинний вхід: 1151, ділити на 2: помилковий вхід: 1152, ділити на 2: істинний вхід: 1153, ділити на 2: помилковий вхід: 1154, ділити на 2: істинний вхід: 1155, ділити на 2: помилковий вхід: 1156, ділити на 2: істинно вхід: 1157, ділимо на 2: Неправдивий вхід: 1158, ділимо на 2: Справжній вхід: 1159, ділимо на 2: Неправдивий вхід: 1160, ділимо на 2: Справжній вхід: 1161, ділимо на 2: Неправдивий вхід: 1162, ділимо на 2: Справжній вхід: 1163, розділити на 2: Неправдивий вхід: 1164, ділити на 2: Справжній вхід: 1165, ділити на 2: Неправильний вхід: 1166, ділити на 2: Справжній вхід: 1167, ділити на 2: Неправдивий вхід : 1168, ділити на 2: Справжній вхід: 1169, ділити на 2: Неправдивий вхід: 1170, ділити на 2: Справжній вхід: 1171, ділити на 2: Неправдивий вхід: 1172, ділити на 2: Справжній вхід: 1173, ділити на 2: Неправдивий вхід: 1174, розділити на 2:Справжній вхід: 1175, розділити на 2: помилковий вхід: 1176, ділити на 2: істинний вхід: 1177, ділити на 2: помилковий вхід: 1178, ділити на 2: істинний вхід: 1179, ділити на 2: помилковий вхід: 1180, ділити на 2: Справжній вхід: 1181, ділити на 2: Неправдивий вхід: 1182, ділити на 2: Справжній вхід: 1183, ділити на 2: Неправдивий вхід: 1184, ділити на 2: Справжній вхід: 1185, ділити на 2: Неправдивий вхід: 1186, розділити на 2: Справжній вхід: 1187, ділити на 2: Неправдивий вхід: 1188, ділити на 2: Справжній вхід: 1189, ділити на 2: Неправдивий вхід: 1190, ділити на 2: Справжній вхід: 1191, ділити на 2: помилковий вхід: 1192, розділити на 2: істинний вхід: 1193, ділити на 2: помилковий вхід: 1194, ділити на 2: істинний вхід: 1195, ділити на 2: помилковий вхід: 1196, ділити на 2: істинний вхід : 1197, розділити на 2: Неправдивий вхід: 1198, ділити на 2: Справжній вхід: 1199, ділити на 2: НеправдивийСправжній вхід: 1179, розділити на 2: помилковий вхід: 1180, ділити на 2: істинний вхід: 1181, ділити на 2: помилковий вхід: 1182, ділити на 2: істинний вхід: 1183, ділити на 2: помилковий вхід: 1184, ділити на 2: Справжній вхід: 1185, ділити на 2: Неправдивий вхід: 1186, ділити на 2: Справжній вхід: 1187, ділити на 2: Неправдивий вхід: 1188, ділити на 2: Справжній вхід: 1189, ділити на 2: Невірно вхід: 1190, розділити на 2: Справжній вхід: 1191, ділити на 2: Неправдивий вхід: 1192, ділити на 2: Справжній вхід: 1193, ділити на 2: Неправдивий вхід: 1194, ділити на 2: Справжній вхід: 1195, ділити на 2: помилковий вхід: 1196, розділити на 2: істинний вхід: 1197, ділити на 2: помилковий вхід: 1198, ділити на 2: істинний вхід: 1199, ділити на 2: помилковийСправжній вхід: 1179, розділити на 2: помилковий вхід: 1180, ділити на 2: істинний вхід: 1181, ділити на 2: помилковий вхід: 1182, ділити на 2: істинний вхід: 1183, ділити на 2: помилковий вхід: 1184, ділити на 2: Справжній вхід: 1185, ділити на 2: Неправдивий вхід: 1186, ділити на 2: Справжній вхід: 1187, ділити на 2: Неправдивий вхід: 1188, ділити на 2: Справжній вхід: 1189, ділити на 2: Невірно вхід: 1190, розділити на 2: Справжній вхід: 1191, ділити на 2: Неправдивий вхід: 1192, ділити на 2: Справжній вхід: 1193, ділити на 2: Неправдивий вхід: 1194, ділити на 2: Справжній вхід: 1195, ділити на 2: помилковий вхід: 1196, розділити на 2: істинний вхід: 1197, ділити на 2: помилковий вхід: 1198, ділити на 2: істинний вхід: 1199, ділити на 2: помилковийСправжній вхід: 1187, розділити на 2: помилковий вхід: 1188, ділити на 2: істинний вхід: 1189, ділити на 2: помилковий вхід: 1190, ділити на 2: істинний вхід: 1191, ділити на 2: помилковий вхід: 1192, ділити на 2: Справжній вхід: 1193, ділити на 2: Неправдивий вхід: 1194, ділити на 2: Справжній вхід: 1195, ділити на 2: Неправдивий вхід: 1196, ділити на 2: Справжній вхід: 1197, ділити на 2: Неправдивий вхід: 1198, розділити на 2: Справжній вхід: 1199, ділити на 2: НеправдивийСправжній вхід: 1187, розділити на 2: помилковий вхід: 1188, ділити на 2: істинний вхід: 1189, ділити на 2: помилковий вхід: 1190, ділити на 2: істинний вхід: 1191, ділити на 2: помилковий вхід: 1192, ділити на 2: Справжній вхід: 1193, ділити на 2: Неправдивий вхід: 1194, ділити на 2: Справжній вхід: 1195, ділити на 2: Неправдивий вхід: 1196, ділити на 2: Справжній вхід: 1197, ділити на 2: Неправдивий вхід: 1198, розділити на 2: Справжній вхід: 1199, ділити на 2: Неправдивий
Більше того, добре розділити і на інші числа (скажімо, 7):
import numpy as np
def layer_1_z(x, w1, b1):
return 1 / w1 * x + b1
def layer_2(x, w1, b1, w2, b2):
y1 = layer_1_z(x, w1, b1)
y2 = y1 - np.floor(y1)
return w2 * y2 + b2
def layer_2_activation(x, w1, b1, w2, b2):
y2 = layer_2(x, w1, b1, w2, b2)
# return 1 / (1 + np.exp(-y2))
return (y2 > 0) * 1
def loss(param):
w1, b1, w2, b2 = param
x = np.arange(0, 1000, 1)
y_hat = layer_2_activation(x, w1, b1, w2, b2)
y_true = (x % 7 > 0) * 1
return sum(np.square(y_hat - y_true))
# %%
from sko.GA import GA
ga = GA(func=loss, n_dim=4, size_pop=50, max_iter=100, lb=[1, 0, 1, 0], ub=[32, 1, 2, 1], precision=1)
best_x, best_y = ga.run()
print('best_x:', best_x, '\n', 'best_y:', best_y)
for x in range(1001, 1200):
y_hat = layer_2_activation(x, *best_x)
print('input:{},divide by 7:{}'.format(x, y_hat == 0))
вхід: 1001, розділити на 7: Справжній вхід: 1002, розділити на 7: Неправдивий вхід: 1003, розділити на 7: Неправдивий вхід: 1004, розділити на 7: Неправдивий вхід: 1005, ділити на 7: Неправдивий вхід: 1006, розділити на 7: помилковий вхід: 1007, розділити на 7: помилковий вхід: 1008, ділити на 7: істинний вхід: 1009, ділити на 7: помилковий вхід: 1010, ділити на 7: помилковий вхід: 1011, ділити на 7: помилковий вхід : 1012, розділити на 7: помилковий вхід: 1013, ділити на 7: помилковий вхід: 1014, ділити на 7: помилковий вхід: 1015, ділити на 7: істинний вхід: 1016, ділити на 7: помилковий вхід: 1017, ділити на 7: помилковий вхід: 1018, розділити на 7: помилковий вхід: 1019, ділити на 7: помилковий вхід: 1020, ділити на 7: помилковий вхід: 1021, ділити на 7: помилковий вхід: 1022, ділити на 7: істинний вхід: 1023, розділити на 7: помилковий вхід: 1024, розділити на 7: помилковий вхід: 1025, розділити на 7: помилковий вхід: 1026, ділити на 7: помилковий вхід: 1027, ділити на 7: помилковий вхід: 1028, ділити на 7 : Помилковий вхід: 1029, розділити на 7:Справжній вхід: 1030, розділити на 7: помилковий вхід: 1031, ділити на 7: помилковий вхід: 1032, ділити на 7: помилковий вхід: 1033, ділити на 7: помилковий вхід: 1034, ділити на 7: помилковий вхід: 1035, ділити на 7: помилковий вхід: 1036, ділити на 7: істинний вхід: 1037, ділити на 7: помилковий вхід: 1038, ділити на 7: помилковий вхід: 1039, ділити на 7: помилковий вхід: 1040, ділити на 7: помилковий вхід: 1041, розділити на 7: помилковий вхід: 1042, ділити на 7: помилковий вхід: 1043, ділити на 7: істинний вхід: 1044, ділити на 7: помилковий вхід: 1045, ділити на 7: помилковий вхід: 1046, ділити на 7: помилковий вхід: 1047, розділити на 7: помилковий вхід: 1048, ділити на 7: помилковий вхід: 1049, ділити на 7: помилковий вхід: 1050, ділити на 7: істинний вхід: 1051, ділити на 7: помилковий вхід : 1052, розділити на 7: помилковий вхід: 1053, ділити на 7: помилковий вхід: 1054, ділити на 7: помилковий вхід: 1055, ділити на 7: помилковий вхід: 1056, ділити на 7: помилковий вхід: 1057, ділити на 7: Справжній вхід: 1058,ділити на 7: помилковий вхід: 1059, ділити на 7: помилковий вхід: 1060, ділити на 7: помилковий вхід: 1061, ділити на 7: помилковий вхід: 1062, ділити на 7: помилковий вхід: 1063, ділити на 7: помилковий вхід: 1064, розділити на 7: Справжній вхід: 1065, розділити на 7: Неправдивий вхід: 1066, розділити на 7: Неправдивий вхід: 1067, ділити на 7: Неправдивий вхід: 1068, ділити на 7: Неправдивий вхід: 1069, розділити на 7: помилковий вхід: 1070, розділити на 7: помилковий вхід: 1071, ділити на 7: істинний вхід: 1072, ділити на 7: помилковий вхід: 1073, ділити на 7: помилковий вхід: 1074, ділити на 7: помилковий вхід : 1075, розділити на 7: помилковий вхід: 1076, ділити на 7: помилковий вхід: 1077, ділити на 7: помилковий вхід: 1078, ділити на 7: істинний вхід: 1079, ділити на 7: помилковий вхід: 1080, ділити на 7: помилковий вхід: 1081, розділити на 7: помилковий вхід: 1082, ділити на 7: помилковий вхід: 1083, ділити на 7: помилковий вхід: 1084, ділити на 7: помилковий вхід: 1085, ділити на 7: істинний вхід: 1086, розділити на 7:Неправдивий вхід: 1087, ділити на 7: Неправдивий вхід: 1088, ділити на 7: Неправдивий вхід: 1089, ділити на 7: Неправильний вхід: 1090, ділити на 7: Неправдивий вхід: 1091, ділити на 7: Неправдивий вхід: 1092, ділити на 7: Справжній вхід: 1093, ділити на 7: Неправдивий вхід: 1094, ділити на 7: Неправдивий вхід: 1095, ділити на 7: Неправдивий вхід: 1096, ділити на 7: Неправдивий вхід: 1097, ділити на 7: Неправдивий вхід: 1098, розділити на 7: помилковий вхід: 1099, ділити на 7: істинний вхід: 1100, ділити на 7: помилковий вхід: 1101, ділити на 7: помилковий вхід: 1102, ділити на 7: помилковий вхід: 1103, розділити на 7: помилковий вхід: 1104, розділити на 7: помилковий вхід: 1105, розділити на 7: помилковий вхід: 1106, ділити на 7: істинний вхід: 1107, ділити на 7: помилковий вхід: 1108, ділити на 7: помилковий вхід : 1109, розділити на 7: помилковий вхід: 1110, ділити на 7: помилковий вхід: 1111, ділити на 7: помилковий вхід: 1112, ділити на 7: помилковий вхід: 1113, ділити на 7: істинний вхід: 1114, ділити на 7: помилковий вхід: 1115,ділити на 7: помилковий вхід: 1116, ділити на 7: помилковий вхід: 1117, ділити на 7: помилковий вхід: 1118, ділити на 7: помилковий вхід: 1119, ділити на 7: помилковий вхід: 1120, ділити на 7: вірно вхід: 1121, розділити на 7: помилковий вхід: 1122, ділити на 7: помилковий вхід: 1123, ділити на 7: помилковий вхід: 1124, ділити на 7: помилковий вхід: 1125, ділити на 7: помилковий вхід: 1126, розділити на 7: помилковий вхід: 1127, розділити на 7: істинний вхід: 1128, ділити на 7: помилковий вхід: 1129, ділити на 7: помилковий вхід: 1130, ділити на 7: помилковий вхід: 1131, ділити на 7: помилковий вхід : 1132, розділити на 7: помилковий вхід: 1133, ділити на 7: помилковий вхід: 1134, ділити на 7: істинний вхід: 1135, ділити на 7: помилковий вхід: 1136, ділити на 7: помилковий вхід: 1137, ділити на 7: помилковий вхід: 1138, розділити на 7: помилковий вхід: 1139, ділити на 7: помилковий вхід: 1140, ділити на 7: помилковий вхід: 1141, ділити на 7: істинний вхід: 1142, ділити на 7: помилковий вхід: 1143, розділити на 7: Неправдивий вхід:1144, розділити на 7: помилковий вхід: 1145, розділити на 7: помилковий вхід: 1146, розділити на 7: помилковий вхід: 1147, ділити на 7: помилковий вхід: 1148, ділити на 7: істинний вхід: 1149, ділити на 7 : Помилковий вхід: 1150, розділити на 7: помилковий вхід: 1151, ділити на 7: помилковий вхід: 1152, ділити на 7: помилковий вхід: 1153, ділити на 7: помилковий вхід: 1154, ділити на 7: помилковий вхід: 1155 , розділити на 7: Справжній вхід: 1156, розділити на 7: помилковий вхід: 1157, ділити на 7: помилковий вхід: 1158, ділити на 7: помилковий вхід: 1159, ділити на 7: помилковий вхід: 1160, ділити на 7: Неправдивий вхід: 1161, розділити на 7: Неправдивий вхід: 1162, розділити на 7: Справжній вхід: 1163, розділити на 7: Неправдивий вхід: 1164, розділити на 7: Неправдивий вхід: 1165, розділити на 7: Неправдивий вхід: 1166, ділити на 7: помилковий вхід: 1167, ділити на 7: помилковий вхід: 1168, ділити на 7: помилковий вхід: 1169, ділити на 7: істинний вхід: 1170, ділити на 7: помилковий вхід: 1171, ділити на 7: помилковий вхід: 1172, розділити на 7:Неправдивий вхід: 1173, розділити на 7: Неправдивий вхід: 1174, розділити на 7: Неправдивий вхід: 1175, ділити на 7: Неправильний вхід: 1176, розділити на 7: Справжній вхід: 1177, розділити на 7: Неправдивий вхід: 1178, ділити на 7: помилковий вхід: 1179, ділити на 7: помилковий вхід: 1180, ділити на 7: помилковий вхід: 1181, ділити на 7: помилковий вхід: 1182, ділити на 7: помилковий вхід: 1183, ділити на 7: вірно вхід: 1184, розділити на 7: помилковий вхід: 1185, ділити на 7: помилковий вхід: 1186, ділити на 7: помилковий вхід: 1187, ділити на 7: помилковий вхід: 1188, ділити на 7: помилковий вхід: 1189, ділити на 7: помилковий вхід: 1190, розділити на 7: істинний вхід: 1191, ділити на 7: помилковий вхід: 1192, ділити на 7: помилковий вхід: 1193, ділити на 7: помилковий вхід: 1194, ділити на 7: помилковий вхід : 1195, розділити на 7: помилковий вхід: 1196, ділити на 7: помилковий вхід: 1197, ділити на 7: істинний вхід: 1198, ділити на 7: помилковий вхід: 1199, ділити на 7: помилковийділити на 7: помилковий вхід: 1175, ділити на 7: помилковий вхід: 1176, ділити на 7: істинний вхід: 1177, ділити на 7: помилковий вхід: 1178, ділити на 7: помилковий вхід: 1179, ділити на 7: помилковий вхід: 1180, розділити на 7: помилковий вхід: 1181, ділити на 7: помилковий вхід: 1182, ділити на 7: помилковий вхід: 1183, ділити на 7: істинний вхід: 1184, ділити на 7: помилковий вхід: 1185, ділити на 7: помилковий вхід: 1186, розділити на 7: помилковий вхід: 1187, ділити на 7: помилковий вхід: 1188, ділити на 7: помилковий вхід: 1189, ділити на 7: помилковий вхід: 1190, ділити на 7: істинний вхід : 1191, розділити на 7: помилковий вхід: 1192, ділити на 7: помилковий вхід: 1193, ділити на 7: помилковий вхід: 1194, ділити на 7: помилковий вхід: 1195, ділити на 7: помилковий вхід: 1196, ділити на 7: помилковий вхід: 1197, розділити на 7: істинний вхід: 1198, ділити на 7: помилковий вхід: 1199, ділити на 7: помилковийділити на 7: помилковий вхід: 1175, ділити на 7: помилковий вхід: 1176, ділити на 7: істинний вхід: 1177, ділити на 7: помилковий вхід: 1178, ділити на 7: помилковий вхід: 1179, ділити на 7: помилковий вхід: 1180, розділити на 7: помилковий вхід: 1181, ділити на 7: помилковий вхід: 1182, ділити на 7: помилковий вхід: 1183, ділити на 7: істинний вхід: 1184, ділити на 7: помилковий вхід: 1185, ділити на 7: помилковий вхід: 1186, розділити на 7: помилковий вхід: 1187, ділити на 7: помилковий вхід: 1188, ділити на 7: помилковий вхід: 1189, ділити на 7: помилковий вхід: 1190, ділити на 7: істинний вхід : 1191, розділити на 7: помилковий вхід: 1192, ділити на 7: помилковий вхід: 1193, ділити на 7: помилковий вхід: 1194, ділити на 7: помилковий вхід: 1195, ділити на 7: помилковий вхід: 1196, ділити на 7: помилковий вхід: 1197, розділити на 7: істинний вхід: 1198, ділити на 7: помилковий вхід: 1199, ділити на 7: помилковийНеправдивий вхід: 1178, розділити на 7: Неправдивий вхід: 1179, ділити на 7: Неправдивий вхід: 1180, ділити на 7: Неправильний вхід: 1181, ділити на 7: Неправдивий вхід: 1182, ділити на 7: Неправдивий вхід: 1183, ділити на 7: Справжній вхід: 1184, ділити на 7: Неправдивий вхід: 1185, ділити на 7: Неправдивий вхід: 1186, ділити на 7: Неправильний вхід: 1187, ділити на 7: Неправдивий вхід: 1188, ділити на 7: Неправдивий вхід: 1189, ділиться на 7: Неправдивий вхід: 1190, ділиться на 7: Справжній вхід: 1191, ділиться на 7: Неправдивий вхід: 1192, ділиться на 7: Неправдивий вхід: 1193, ділиться на 7: Неправдивий вхід: 1194, розділити на 7: помилковий вхід: 1195, розділити на 7: помилковий вхід: 1196, ділити на 7: помилковий вхід: 1197, ділити на 7: істинний вхід: 1198, ділити на 7: помилковий вхід: 1199, ділити на 7: помилковийНеправдивий вхід: 1178, розділити на 7: Неправдивий вхід: 1179, ділити на 7: Неправдивий вхід: 1180, ділити на 7: Неправильний вхід: 1181, ділити на 7: Неправдивий вхід: 1182, ділити на 7: Неправдивий вхід: 1183, ділити на 7: Справжній вхід: 1184, ділити на 7: Неправдивий вхід: 1185, ділити на 7: Неправдивий вхід: 1186, ділити на 7: Неправильний вхід: 1187, ділити на 7: Неправдивий вхід: 1188, ділити на 7: Неправдивий вхід: 1189, ділиться на 7: Неправдивий вхід: 1190, ділиться на 7: Справжній вхід: 1191, ділиться на 7: Неправдивий вхід: 1192, ділиться на 7: Неправдивий вхід: 1193, ділиться на 7: Неправдивий вхід: 1194, розділити на 7: помилковий вхід: 1195, розділити на 7: помилковий вхід: 1196, ділити на 7: помилковий вхід: 1197, ділити на 7: істинний вхід: 1198, ділити на 7: помилковий вхід: 1199, ділити на 7: помилковийділити на 7: помилковий вхід: 1185, ділити на 7: помилковий вхід: 1186, ділити на 7: помилковий вхід: 1187, ділити на 7: помилковий вхід: 1188, ділити на 7: помилковий вхід: 1189, ділити на 7: помилковий вхід: 1190, ділиться на 7: Справжній вхід: 1191, ділиться на 7: Неправдивий вхід: 1192, ділиться на 7: Неправдивий вхід: 1193, ділиться на 7: Неправдивий вхід: 1194, ділиться на 7: Неправдивий вхід: 1195, розділити на 7: помилковий вхід: 1196, розділити на 7: помилковий вхід: 1197, ділити на 7: істинний вхід: 1198, ділити на 7: помилковий вхід: 1199, ділити на 7: помилковийділити на 7: помилковий вхід: 1185, ділити на 7: помилковий вхід: 1186, ділити на 7: помилковий вхід: 1187, ділити на 7: помилковий вхід: 1188, ділити на 7: помилковий вхід: 1189, ділити на 7: помилковий вхід: 1190, ділиться на 7: Справжній вхід: 1191, ділиться на 7: Неправдивий вхід: 1192, ділиться на 7: Неправдивий вхід: 1193, ділиться на 7: Неправдивий вхід: 1194, ділиться на 7: Неправдивий вхід: 1195, розділити на 7: помилковий вхід: 1196, розділити на 7: помилковий вхід: 1197, ділити на 7: істинний вхід: 1198, ділити на 7: помилковий вхід: 1199, ділити на 7: помилковийділити на 7: Справжній вхід: 1198, ділити на 7: Неправдивий вхід: 1199, ділити на 7: Неправдивийділити на 7: Справжній вхід: 1198, ділити на 7: Неправдивий вхід: 1199, ділити на 7: Неправдивий
Пояснення:
Я отримую 2 різні рішення. І те і інше добре:
1. гріх як активація
2. підлога (або int) як активізація
Неможливо знайти найкращі ваги за допомогою градієнтного спуску, і я використовую генетичний алгоритм (від scikit-opt )