def __init__(self, num_hidden_nodes, data_matrix, data_labels, training_indices, use_file=True):
# sigmoid??
self.sigmoid = np.vectorize(self._sigmoid_scalar)
# sigmoid????
self.sigmoid_prime = np.vectorize(self._sigmoid_prime_scalar)
# ??????
self._use_file = use_file
# ???
self.data_matrix = data_matrix
self.data_labels = data_labels
if (not os.path.isfile(OCRNeuralNetwork.NN_FILE_PATH) or not use_file):
# ???????
self.theta1 = self._rand_initialize_weights(400, num_hidden_nodes)
self.theta2 = self._rand_initialize_weights(num_hidden_nodes, 10)
self.input_layer_bias = self._rand_initialize_weights(1, num_hidden_nodes)
self.hidden_layer_bias = self._rand_initialize_weights(1, 10)
# ?????
TrainData = namedtuple('TrainData', ['y0', 'label'])
self.train([TrainData(self.data_matrix[i], int(self.data_labels[i])) for i in training_indices])
self.save()
else:
# ??nn.json?????
self._load()
评论列表
文章目录