Основные методы класса NuralNetPro - aeDeaf/physlearn GitHub Wiki

Класс NeuralNetPro

Данный класс позволяет создавать граф TF нейронной сети (далее - НС), позволяет запускать ее на произвольных данных, осуществляет "разворачивание" матриц весов в один вектор и последующее сворачивание обратно.

Если формат возвращаемого значения не описан, то значит, что метод ничего не возвращает.

Конструктор:

NeuralNetPro(min_element, max_element)

min_element и max_element - числа, минимальное и максимальное число, которое передается в numpy.random.uniform при случайной инициализации матриц (соответственно, это минимальный и максимальный вес в случайно созданной НС)


Описание архитектуры сети:

add_input_layer(amount_of_units)

Добавляет входной слой. Amount_of_units - число, количество нейронов во входном слое. Использовать обязательно.

add(amount_of_units, activation_func)

Добавляет скрытый слой. Amount_of_units - аналогично входному слою, activation_func - функция.

add_output_layer(amount_of_units, activation_func)

Здесь все аналогично. Использовать обязательно.

compile()

Создает TF граф НС, проводит еще парочку дополнительных манипуляций. Использовать обязательно. Работать без него точно ничего не будет (внезапно, ага).


Основные методы:

return_unroll_dim()

Возвращает длину (размерность) вектора - число, который получится, если развернуть все матрицы весов в одну длинную херовину.

roll_matrixes(unroll_vector)

unroll_vector - вектор numpy длины (размерности), совпадающая с той, что возвращает return_unroll_dim

return_graph()

Возвращает TF граф, отвечающий выходам НС.

return_session()

Возвращает TF session. С помощью полученной сессии можно запускать НС на произвольных данных с помощью sess.run(...), однако из-за того, что все матрицы весов это placeholder, то делать так не рекомендую.

run(inputs)

inputs - матрица Numpy - входные данные. Для вычисления значения НС рекомендую использовать именно этот метод, так как всю работу с placeholder он берет на себя. Возвращает матрицу Numpy, отвечающую выходам НС.


Вспомогательные методы:

set_random_matrixes()

Устанавливает случайные матрицы весов.