Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здравствуйте, Дмитрий,
Я работаю над первыми двумя частями вашей серии "Нейронные сети" уже несколько недель, и постоянно натыкаюсь на следующий код при циклическом переборе нейронов (или других вещей).
Я действительно не понимаю - с моей точки зрения, в этом коде всегда должен отсутствовать последний элемент. Функции Total() должны возвращать счетчик, затем вы удаляете один элемент и используете "<" в цикле for. Таким образом, для подсчета Total(), равного 2, вы запустите цикл for только один раз.
Что я упустил?
С уважением,
Delf
в некоторых частях кода вы написали что-то вроде:
но предположим, что у нас 20 нейронов в слое, и мы присваиваем переменной total значение 19 [int total=Layer.Total()-1], так что теперь total равно 19, когда мы итерируем нейроны с индекса 0-18 (total=19), мы никогда не достигаем индекса 19 (последний нейрон), я думаю, мы должны изменить код на:
или
чтобы достичь последнего нейрона в слое.
Какова ваша идея?
в каком-то коде вы написали что-то вроде:
[int total=Layer.Total()-1], так что теперь total равен 19, когда мы итерируем нейроны с индекса 0-18 (total=19), мы никогда не достигаем индекса 19 (последний нейрон), я думаю, что мы должны изменить код на:
или
чтобы достичь последнего нейрона в слое.
Какова ваша идея?
На каждом слое мы добавляем еще один нейрон для байесовского сдвига. Поэтому при вызове функции для создания слоя с 20 нейронами мы создаем 21 нейрон. И Layer.Total() вернет 21. Но входные данные будут содержать только 20 элементов. Последний нейрон байесовского сдвига всегда имеет на выходе '1'. Поэтому я использую Layer.Total()-1. В цикле я использую "<", потому что первый элемент массива имеет индекс '0'.
Вышла новая статья Neural Networks Made Easy:
Автор Дмитрий Гизлык
Здравствуйте, впервые изучаю нейронные сети, ваша статья мне очень подходит, но я хотел бы узнать, почему во многих местах нужно ставить -1, например: nextLayer.Total () - 1, чтобы не совпадало с количеством нейронов в следующем слое.
Здравствуйте, первый раз изучаю нейронные сети, ваша статья мне очень подходит, но я хочу знать, почему во многих местах нужно -1, например: nextLayer. () - 1, чтобы не совпадало с количеством нейронов в следующем слое.
Привет, это нормальная работа с массивом. В mql5 все индексы массивов начинаются с 0. И nextLayer.Total() возвращает общее количество нейронов. Так что если оно равно 10, это означает. элементы массива имеют индексы от 0 до 9.
При загрузке файла я получаю ошибку компиляции.
Попробуйте использовать функцию GetPointer.
Здравствуйте Дмитрий, спасибо за эту статью. Подскажите, пожалуйста, как можно исправить эту ошибку? Не могли бы вы предоставить исправленный код?
Привет, Мухаммад, удалось ли вам исправить эту ошибку?