num_classes = 6 # количество классов изображений # размер изображения, класс изображения one_layer_net = OneLayerNet(input_height * input_width, num_classes) #путь деррикториям с картинками train_dir = "data/train" test_dir = "data/test" train_generator = DataReader(train_dir, [input_height, input_width], True, input_channels, num_classes).get_generator() # берется с помощью DataReader изображения, тренировочную и тестовую выборку test_generator = DataReader(test_dir, [input_height, input_width], False, input_channels, num_classes).get_generator() print('Size of training set: {}'.format( train_generator.get_data_size())) # вес тренировочных изображений print('Size of testing set: {}'.format( test_generator.get_data_size())) # вес тесовых изображенй изображений print("{} Start training...".format(datetime.now())) # время начала обучения # функция ,которая для каждой итерации считает ошибочность распознавания в обучении for epoch in range(num_epochs): print("{} Epoch number: {}".format(datetime.now(), epoch + 1)) loss = 0 for m in range(train_generator.get_data_size()): # переборка векторов x, d = train_generator.next() loss += one_layer_net.train(Vector(x, d), learning_rate) # подсчет ошибок print("loss = {}".format(loss / train_generator.get_data_size())) train_generator.reset_pointer()
merged_summary = tf.summary.merge_all() valid_summary = tf.Summary() # Инициализируем FileWriter writer_1 = tf.summary.FileWriter(filewriter_path + 'train') writer_2 = tf.summary.FileWriter(filewriter_path + 'validation') # Инициализируем заставку для контрольных точек модели чекпоинт saver = tf.train.Saver() train_dir = '../data/train' test_dir = '../data/test' train_generator = DataReader(train_dir, [input_height, input_width], True, input_channels, num_classes).get_generator() test_generator = DataReader(test_dir, [input_height, input_width], False, input_channels, num_classes).get_generator() print('Размер обучающего набора: {}'.format(train_generator.get_data_size())) print('Размер испытательного комплекта: {}'.format(test_generator.get_data_size())) train_patterns_per_epoch = train_generator.get_data_size() # Начнаем сеанс with tf.Session() as sess: # Инициализация всех переменных sess.run(tf.global_variables_initializer()) # Добавим грфик модели в TensorBoard writer_1.add_graph(sess.graph) print("{} приступить к тренировкам...".format(datetime.now())) print("{} Откройте Tensorboard по команде: tensorboard --logdir {}".format(datetime.now(), log_path))
# Инициализируйте FileWriter writer_1 = tf.summary.FileWriter(filewriter_path + 'train') writer_2 = tf.summary.FileWriter(filewriter_path + 'validation') # Инициализируйте заставку для контрольных точек модели чекпоинт saver = tf.train.Saver() train_dir = '../data/train' test_dir = '../data/test' train_generator = DataReader(train_dir, [input_height, input_width], True, input_channels, num_classes).get_generator() test_generator = DataReader(test_dir, [input_height, input_width], False, input_channels, num_classes).get_generator() print('Size of training set: {}'.format(train_generator.get_data_size())) print('Size of testing set: {}'.format(test_generator.get_data_size())) train_patterns_per_epoch = train_generator.get_data_size() # начать сеанс with tf.Session() as sess: # инициализация всех переменных sess.run(tf.global_variables_initializer()) # добавит грфик модели в TensorBoard writer_1.add_graph(sess.graph) print("{} Start training...".format(datetime.now())) print("{} Open Tensorboard by command: tensorboard --logdir {}".format( datetime.now(), log_path))
input_channels = 1 input_height = 28 input_width = 28 num_classes = 6 one_layer_net = OneLayerNet(input_height * input_width, num_classes) train_dir = "data/train" test_dir = "data/test" train_generator = DataReader(train_dir, [input_height, input_width], True, input_channels, num_classes).get_generator() test_generator = DataReader(test_dir, [input_height, input_width], False, input_channels, num_classes).get_generator() print('Size of training set: {}'.format(train_generator.get_data_size())) print('Size of testing set: {}'.format(test_generator.get_data_size())) print("{} Start training...".format(datetime.now())) for epoch in range(num_epochs): print("{} Epoch number: {}".format(datetime.now(), epoch + 1)) loss = 0 for m in range(train_generator.get_data_size()): x, d = train_generator.next() loss += one_layer_net.train(Vector(x, d), learning_rate) print("loss = {}".format(loss / train_generator.get_data_size())) train_generator.reset_pointer() train_generator.shuffle_data() passed = 0 for i in range(test_generator.get_data_size()):