Архив автора: admin

Как изменить порт по умолчанию для Redis

Redis — это бесплатное хранилище данных в памяти с открытым исходным кодом, известное своей очень низкой задержкой. Он предоставляет набор команд для работы с кластером Redis и его данными. В этой статье мы узнаем, как использовать эти команды для изменения параметров запуска для кластера Redis.

 

Базовый

После установки Redis на свой сервер вы можете запустить сервер с помощью команды redis-server. Команда инициализирует кластер Redis, позволяя вам подключаться к нему и выполнять команды.

По умолчанию сервер Redis будет работать на порту 6379. Вы можете изменить порт запуска по умолчанию, как описано в этой статье.

 

Метод 1 — аргументы командной строки.

Первый способ изменить порт запуска по умолчанию для сервера Redis — использовать параметр командной строки.

Например, чтобы указать Redis запускаться на порту 9001, используйте флаг –port, как показано в примере команды:

redis-server --port 9001

 

Метод 2 — файл конфигурации

Мы запустили сервер Redis на настраиваемом порту, указав аргумент –port в обсуждаемом методе.

Этот метод потребует от вас указывать порт каждый раз при перезапуске сервера.

Вы можете отредактировать файл конфигурации сервера Redis и указать порт запуска, чтобы изменения были постоянными.

Откройте терминал и отредактируйте конфигурацию как:

sudo nano /etc/redis/redis.conf

 

Найдите запись, как показано ниже, и измените значение на желаемый порт.

port 6379

 

После того, как вы установите желаемый порт, сохраните и закройте файл.

Затем перезапустите службу Redis, чтобы изменения вступили в силу.

 

Подключение к настраиваемому порту

После изменения порта по умолчанию в кластере Redis вам нужно будет указать порт при подключении с помощью Redis-CLI. Вы можете использовать команду, как показано ниже:

redis-cli -h localhost -p 9001

 

Вы можете узнать больше, проверив документацию по redis-cli.

 

Выводы

В этой статье обсуждались различные методы изменения порта по умолчанию для вашего кластера Redis. Перед внесением каких-либо изменений рекомендуется убедиться, что у вас есть разрешения на редактирование файлов конфигурации и перезапуск служб.



2021-12-20T18:36:28
Redis

Как взломать VPS Linux

Виртуальный сервер или VPS позволяет вам иметь очень мощный компьютер с неограниченными выделенными ресурсами, который выполнен с использованием лучших и самых современных методов виртуализации. VPS помогает вам использовать его в лучших условиях и со скоростью доступа в Интернет, что обеспечивает чрезвычайно высокую безопасность. Виртуальный сервер или VPS подходит для долгосрочного использования и может запускать команды и программное обеспечение в течение нескольких месяцев без необходимости перезагрузки и снижения скорости и эффективности. Если у вас есть сайт, который получает много трафика, или вы ожидаете получить много трафика в будущем, вы можете использовать такие опции, как VPS-сервер Linux для его размещения. Если вы хотите больше контролировать то, что установлено на сервере, виртуальный сервер Linux-лучший вариант для вас. В этой статье мы научим вас, как взломать VPS Linux. Оставайся с нами.

 

Функции виртуального сервера

  • Поскольку он является частью основного сервера, ваши ресурсы, такие как оперативная память, процессор и место для хранения, выделяются.
  • Полная свобода в установке и удалении программного обеспечения
  • Возможность удаленного управления
  • Возможность выключения, перезапуска и доступа к панели управления виртуальным сервером
  • Выделенный IP-адрес
  • Возможность размещения одного или нескольких сайтов (в зависимости от ресурсов виртуального сервера)
  • Гораздо доступнее, чем выделенный сервер

 

Виртуальный сервер гораздо больше подходит для размещения популярных сайтов, чем общий хостинг. VPS обладает более высокой безопасностью, чем общий хостинг. (Но это должна быть специализированная конфигурация безопасности от нуля до 100. В противном случае он не обладает высокой степенью безопасности). Он также подходит для задач, требующих очень высокоскоростного Интернета, и используется в качестве сервера электронной почты, сервера баз данных, сервера приложений.

 

Преимущества виртуального сервера Linux

Использование виртуального сервера Linux имеет много преимуществ. Например, вы можете наслаждаться простотой использования, повышенной безопасностью и повышенным доверием при меньших затратах. Однако для большинства веб-мастеров, программистов, дизайнеров и разработчиков реальным преимуществом этого сервера является его гибкость.

Каждый виртуальный сервер отделен от других виртуальных серверов своей собственной операционной системой. Это означает, что вы можете легко установить понравившуюся операционную систему и установить или удалить необходимое программное обеспечение. Вы также сможете изменить свою среду VPS для повышения производительности, а также оптимизации работы пользователей и посетителей сайта. Гибкость может быть одним из главных преимуществ виртуальных серверов.

Одним из наиболее важных и очевидных преимуществ виртуального сервера Linux является его простота в эксплуатации и повышенная безопасность, которые могут быть реализованы при меньших затратах.

Для большинства веб-мастеров при покупке виртуального сервера важно обратить внимание на гибкость сервера, которую можно увидеть на сервере Linux vps. В связи с тем, что на серверах может быть установлена любая операционная система или программное обеспечение, функция гибкости очень важна при покупке vps-сервера.

Учитывая вышесказанное, частным лицам и компаниям, желающим получить больше гибкости в своих возможностях настройки и разработки, следует выбрать виртуальный сервер Linux.

ПРИМЕЧАНИЕ
Следует отметить, что сегодня более 60% мира веб-хостинга занято виртуальным сервером Linux, и это свидетельствует о его эффективной роли в веб-хостинге.

 

Как взломать VPS Linux

В этой статье мы научим вас, как взломать виртуальный сервер Linux. Для многих людей произошли важные вещи, и им нужен виртуальный сервер, но по финансовым причинам они не смогли его купить. Что ж, в этой статье мы научим вас, как взломать vps-сервер Linux. Присоединяйтесь к нам.

 

Что такое инструмент Lazy RDP?

Это подходящий инструмент для Linux, который позволяет использовать грубую силу всех видов серверных служб, и мы используем его для грубой силы службы Lazy RDP.

 

Научитесь взламывать vps-сервер с помощью инструмента Lazy RDP

Сначала вы должны установить инструмент Lazy RDP из GateHub в Kali Linux:

Затем, после установки инструмента в Kali Linux, вы должны открыть инструмент с помощью следующей команды:

cd Lazy-RDP

 

Введите следующую команду для установки инструментов и способов взлома сервера с помощью crack:

chmod +x src/rdp_brute.sh patator.py start ; ./start

 

Окно инструмента открывается после установки, и вы можете легко выполнить все действия с помощью этого инструмента. Преимущество этого инструмента заключается в том, что он также использует другие инструменты тестирования на проникновение, такие как Nmap. Например, если вы хотите сканировать активные IP-адреса, сначала введите порт RDP по умолчанию 3389. Затем введите число 1 для сканирования IP-адреса и снова введите число 1 для сканирования IP-адреса с помощью инструмента Nmap. Теперь дождитесь завершения сканирования, и вам будет показан результат. Вы можете повторить эти шаги еще раз.

 

Научитесь взламывать vps с помощью kali с помощью инструмента Hydra

Откройте инструмент hydra-gtk или xhydra.

Введите свой список IP-адресов в поле целевой список:

Port: 3389

Protocol: rdp

 

На следующей вкладке введите пароль из списка в поле пароль, а в поле имя пользователя введите имя пользователя на следующей вкладке соответственно:

Task:15

Time out: 50

 

Чтобы взломать список IP-адресов vps, вы должны сначала посетить сайт, такой как

countryipblocks, чтобы получить диапазон IP-адресов любой страны, которую вы хотите. Затем с помощью программного обеспечения KPortScan, представляющего собой специальный сканер, укажите активные IP-адреса, перечислите их в Kali Linux и начните сканирование.

Защита VPS от взлома

Есть только один способ предотвратить это. Это использование жестких имен пользователей и надежных паролей. Пароли, которые объединяют прописные, строчные, цифры и символы.

В технике грубой силы пароль каждый раз угадывается. Если вы введете простой пароль, такой как год рождения и т. д., Ваш сервер будет легко взломан. Но предположим, что пароль состоит из более чем 10 символов и комбинации строчного, прописного, числа и символа. Несомненно, вероятность того, что ваш пароль находится в списке пароль, и вы взломаны, близка к нулю.

Поэтому отнеситесь к безопасности серьезно и вообще не используйте простые пароли.

 

Вывод

Многие из вас слышали слово «crack», но вы не знаете, как это на самом деле делается и каковы простые и основные принципы? В этой короткой статье мы сначала рассказали о виртуальном сервере и преимуществах виртуального сервера Linux. Затем мы познакомили вас с тем, как взломать VPS Linux.



2021-12-19T14:11:16
Kali Linux

MikroTik NTP-сервер для локальной сети.

В процессе обслуживания ЛВС возникла необходимость обеспечить синхронизацию времени в большом количестве камер видеонаблюдения. От серверов в Интернете синхронизация почему-то проходила плохо и не всегда. На помощь пришел микротик. В роутере был запущен NTP-сервер для локальной сети, который сам синхронизировался из внешней сети (Интернета) без проблем. Как это все настроить описано далее.

Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Использован роутер RB750Gr3 c прошивкой v6.49. Пакет NTP-сервера не входит в базовый состав прошивки, его нужно скачивать отдельно. В прошивках версии v7.0 и выше пакет NTP встроен в главный файл прошивки.

Настройки выполняются через WinBox.

Настройка SNTP-клиента.

Этот вариант предназначен только для синхронизации самого микротика из сервисов NTP в интернете. Он немного отходит от темы инструкции, рассмотрим его кратко. Дополнительно скачивать ничего не нужно.

Переходим через боковое меню в System >> SNTP Client.

Активируем клиента галочкой напротив Enabled.

Primary NTP Server: 88.147.254.230  – IP-адрес первичного NTP сервера.

Secondary NTP Server: 88.147.254.232 – IP-адрес резервного NTP сервера.

Адреса ближайших серверов можно найти в интернете.

Сохраняем настройки на кнопку «ОК».

Через командную строку терминала:



 

Вместо IP-адресов можно указывать доменные имена серверов.

 

Клиент настроен, время в роутере актуальное. Проверить его можно на вкладке System >> Clock или вынести на переднюю панель в верхней правой часть окна WinBox.

Через командную строку, например при работе через SSH, можно проверить время с помощью команды:



 

Firewall

NTP работает через порт 123 UDP. Если по каким-то причинам Firewall не пропускает трафик по этому порту, то его нужно открыть правилом в IP >> Firewall >> Filter Rules.

При необходимости можно указать в правиле конкретный интерфейс. Правило размещается вверху списка.

Через командную строку терминала:



В данном случае это правило не понадобилось и NTP работает без него.

 

NTP Client и NTP Server.


Установка пакета NTP для прошивок ниже v7

Для настройки сервера необходимо скачать дополнительный пакет для своей версии прошивки, в данном случае v6.49.

Находим на сайте mikrotik.com в разделе software прошивку для своей архитектуры и модели роутера. Выбираем и скачиваем Extra Packages.

Находим в скаченном архиве пакет NTP и перетягиваем его в роутер.

Проверяем, чтоб файл оказался во временной памяти.

Перезагружаем роутер. System >> Reboot.

После перезагрузки пакет установится. Убедиться в этом можно в меню System >> Packages.

В меню System появится 2 новых пункта NTP Client и NTP Server, а SNTP Client пропадет.


Настройка NTP клиента.

Тут все почти так же, как с SNTP клиентом.

Переходим в меню System >> NTP Client.

Enabled – отмечаем галочкой, для активации клиента;

Mode: unicast – режим передачи пакетов от сервера клиенту;

Далее указываются IP-адреса ближайших NTP-серверов в Интернете.

Primary NTP Server: 185.65.137.155 – основной сервер;

Secondary NTP Server: 194.158.196.171 – резервный сервер.

 

Через командную строку терминала:



 

Можно указывать адрес сервера в виде доменного имени. При нажатии кнопки «Apply» доменное имя преобразуется в IP-адрес.

Выбрать ближайший сервер можно с помощью Интернет-сервиса pool.ntp.org

 

В прошивке v7.1 появились дополнительные настройки NTP-клиента.

Можно добавлять более двух серверов времени. Появилась кнопка сброса частотных погрешностей (Reset Drift). Так же можно подробно работать с серверами и посмотреть пиры. Похоже что все эти новые настройки разработчики подсмотрели у циски.


Drift

Drift (дрейф) — это сдвиг частоты между аппаратными локальными часами и временем от серверов NTP в Интернете. NTP автоматически вычисляет этот дрейф и использует полученное значение для постоянной компенсации недостатков локальных часов.

Кнопка Reset Drift позволяет роутеру сбросить значение подстройки синхронизации, вызванную частотным дрейфом и заново начать запоминать частоту тактовых импульсов сервера NTP. Дрейф частоты может возникнуть, например, если роутер переключается с синхронизации с одним сервером NTP на синхронизацию с другим сервером NTP с другой частотой.


Активация NTP-клиента через командную строку терминала для прошивки v7 и выше:



О том, что время синхронизировалось сообщает статус — synchronized

Клиент настроен.

 

Настройка NTP сервера.

Активируем сервер. System >> NTP Server

Enabled – отмечаем галочкой;

«ОК» – для сохранения настройки.

Manycast – режим обмена пакетами между сервером и клиентами — оставляем без изменений.

 

В прошивке v7.1 так же как и в клиенте добавлено пару дополнительных кнопок – взаимодействие сервера и клиента через ключ и просмотр пиров.

Отмечаем галочками Enabled и Manycast.

Через командную строку терминала:



Сервер настроен.

 

NTP можно динамически раздавать вместе с сетевыми настройками. Для этого в DHCP сервере для локальной сети на вкладке Networks нужно добавить адрес NTP-сервера.

 

Настройка NTP-клиента на сетевых устройствах.

MikroTik.

Если в сети есть другие устройства MikroTik, которые получают IP-адреса по DHCP, то в них есть возможность так же получать NTP. Проверить это можно в клиенте DHCP.

За динамическое получение NTP отвечает настройка Use Peer NTP. Когда настройка активирована, в NTP Client (так же активированном) появляются динамические IP-адреса серверов синхронизации.

Других устройств с динамическим получением NTP в нашей сети обнаружено не было.

 

 NTP в камерах видеонаблюдения.

В камерах видеонаблюдения, для которых это все делалось, нет автоматического получения NTP с сетевыми настройками. NTP сервер указывается вручную. Входим в меню настроек камеры. На вкладке «Время» активируем галочкой NTP и указываем IP-адрес настроенного ранее локального сервера.

Проверяем, нажав на кнопку тест – устанавливается актуальное время. NTP работает.

Настроенный локальный NTP-сервер можно указать во всех сетевых устройства, чтоб синхронизировать время из одного источника.

Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.



2021-12-18T18:12:33
Настройка ПО

MikroTik Simple Queues — простое ограничение скорости.

Поставлена простая задача: ограничить скорость доступа в Интернет определенному пользователю в небольшой локальной сети. На этом все. Пользователь часто смотрит видео в высоком разрешении, периодически включается торрент, который портит настроение всем остальным.

Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Настройки выполнялись на роутер RB750GR3 с прошивкой v6.49. Выполнена базовая настройка по этой инструкции.

Выбран тестовый ПК с произвольным IP-адресом, чтоб наблюдать результаты настроек. Затем IP-адрес заменен на требуемый.

1.Проверка скорости доступа в Интернет.

Перед началом настроек проверим реальную существующую скорость с помощью сервиса в Интернете, например speedtest.

Скорость соответствует тарифному плану 20/20 Мбит/сек.

 

2.Определение IP-адреса пользователя.

IP-адреса в сети раздает DHCP сервер.

Переходим по меню в: IP >> DHCP Server >> Leases

Находим в списке нужного пользователя. У него статус D – dynamic.

Нажимаем на него правой кнопкой мыши и выбираем из меню строчку «Make Static».

После этих действий указанному пользователю всегда будет раздаваться один и тот же IP-адрес. Он привязан к MAC-адресу. Статус D пропадет.

 

3.Ограничение скорости.

Создадим правило, ограничивающее скорость заданному пользователю на уровне 3Мбит/сек.

Queues >> Simple Queues >> +

В открывшемся окне на вкладке General вводим настройки:

Name: USER-320-1-LIMIT-3M – имя пользователя, которому ограничивается скорость. Если пользователей будет несколько, то лучше сразу задать толковое имя, чтоб понимать, где кто. В данном случае  указан пользователь (USER, BUH, MARKETOLOG, ECONOM и тп.), номер кабинета, номер подключения в кабинете и лимит скорости.

Target: 192.168.15.99 – IP-адрес пользователя.

Dst: ether1-WAN – внешний интерфейс для конкретизации, если их несколько.

Target Upload Max.Limit: 3M – максимальная скорость для выгрузки в Интернет.

Target Download Max.Limit: 3M – максимальная скорость скачивания из Интернета.

M –означает мегабиты. Скорость можно выбрать из списка или написать любую.

Нажимаем кнопку «ОК» для сохранения настроек.

Через командную строку терминала:



Проверяем скорость

Скорость соответствует.

О том, что правило работает, так же сообщает значок напротив пользователя. В зависимости от загрузки он становится желтым – 50% (и выше) или красным – 75% (и выше).

Цель достигнута. Осталось только заменить в правиле IP-адрес тестового компьютера, на IP нужного пользователя.

Если скорость не ограничивается и правило не работает, то нужно проверить в IP >> Firewall >> Filter Rules наличие правила fasttrack connection (пересылка трафика без обработки). Если это правило присутствует его нужно удалить и перезагрузить роутер.

После того, как правило поработало пару дней, пользователь-качатель пришел на переговоры. Объяснил, что дома совсем плохой Интернет, сделать лучше не позволяет техническая возможность, 3G нет и тп и он хочет иногда что-то скачивать на работе. Было найдено компромиссное решение – разрешено качать с 18:00 до 7:00 в период, когда никто не работает.

Настройка время находится в нижней части окна правила.

Time: 07:00:00 – 18:00:00 – период времени в течение которого будет работать это правило.

Days: mon, tue, wed, thu, fri, — дни недели с понедельника по пятницу в течение которых будет работать правило.

Во все остальное неуказанное время (с 18 вечера до 7 утра по будням и все выходные) правило не работает, скорость не ограничена и пользователь может занимать канал в Интернет, не нарушая чью-то работу.

Через консоль с добавлением время работы:



Когда правило не работает, оно написано в списке красными буквами.

 

4.Разделение скорости пользователям и админам.

Рассмотрим еще один вариант, в котором нужно ограничить скорость всем пользователям сети кроме админов. Порядок расположения правил в Simple Queues имеет значение. Воспользуемся этой возможностью. Создадим правило, ограничивающее скорость на интерфейсе Bridge-LAN (локальная сеть). Затем создадим правило для скорости админу и поместим его выше правила для интерфейса. Проверим, как это работает.

 

Правило для пользователей.

Переходим в Simple Queues, создаем новое правило, нажав синий плюс.

Name: LAN-15-LIMIT-10M – имя для правила на локальную сеть с указанием лимита (любое понятное название латиницей);

Target: bridge-LAN – мост на котором локальная сеть;

Dst.: ether1-WAN (можно не указывать);

Target Upload Max Limit: 10M – максимальная скорость выгрузки;

Target Download Max Limit: 10M – максимальная скорость загрузки (скачивания);

Нажимаем кнопку «ОК».

Через командную строку терминала:



 

Правило для администратора.

В Simple Queues, создаем новое правило, нажав синий плюс.

Name: ADMIN-101-LIMIT-20M – имя для правила скорости админа;

Target: 192.168.15.101 – IP-адрес админа;

Dst.: ether1-WAN

Target Upload Max Limit: 20M – максимальная скорость выгрузки;

Target Download Max Limit: 20M – максимальная скорость загрузки (скачивания);

Нельзя оставлять значение «unlimited», нужно указать цифровое значение, иначе правило не заработает.

«ОК» для сохранения.

 

Чтоб правила пользователей и админа работали, их нужно расположить в определенном порядке: админ верхнее, пользователи – ниже.

Если правила не перетаскиваются нужно нажать на значок #.

По результатам проверки у пользователей в этой сети скорость 10Мбит/с, а у админа 20Мбит/с. У пользователя, который качает – 3Мбит/сек по расписанию.

 

Если нужно добавить еще одного админа или сервер без ограничений скорости, следует добавить требуемые IP-адреса в первое правило в поле «Target» (или создать еще одно правило).

К сожалению, в данном варианте прикрепить список пользователей в одно правило не получится и добавлять нужно по одному IP-адресу, привязанному к MAC-адресу.

Текущие скорости и график можно посмотреть на вкладке «Traffic», но для каждого правила отдельно.

Общую картину внешнего трафика в Simple Queues можно увидеть, если создавать одно родительское правило и все правила добавлять в него, но это отдельная тема. Или использовать Torch или IP Firewall Connection, но эти способы не очень удобны, потому что показан трафик на каждый IP-адрес назначения.

 

Burst.

В правиле «Simple Queues» на вкладке «General» кроме всего вышеперечисленного есть еще одна выпадающая вкладка с названием «Burst». Рассмотрим ее назначение.

Burst (вспышка) – функция, которая позволяет кратковременно увеличить скорость свыше установленного лимита. Например, при открытии Интернет-страниц в браузере не будет возникать задержек и тормозов, а если пользователь начнет смотреть видео или скачивать, то его скорость вернется к установленным лимитам.

Устанавливаем значения параметров «Burst». Значения в разных ситуациях будут разные и зависят от тарифного плана и настроенного ранее максимального ограничения скорости.

Burst Limit – максимальная скорость на время включения режима «Burst»;

Burst-time – время в течение которого рассчитывается средняя скорость;

Burst Threshold – значение средней скорости определяющее включение или выключение режима «Burst».

Через командную строку терминала:



Итак, мы открыли страницу и она начала загружаться с максимальной скоростью 15М. В течение 20сек  (Burst Time) рассчитывается средняя скорость. Когда средняя скорость достигает 8М (Burst Threshold), режим «Burst» отключается и скорость снижается до лимита в 10М. Вот примерно так это работает. Подробности с графиком в официальной wiki.

Освоить MikroTik Вы можете с помощью онлайн-куса
«Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.



2021-12-18T11:12:31
Настройка ПО

Логистическая регрессия с использованием PyTorch

Логистическая регрессия — это хорошо известный алгоритм машинного обучения, который используется для решения задач двоичной классификации. Он является производным от алгоритма линейной регрессии, который имеет непрерывную выходную переменную, а логистическая регрессия может даже классифицировать более двух классов, слегка изменив ее. Мы рассмотрим концепцию логистической регрессии и то, как она реализована в PyTorch, полезной библиотеке для создания моделей машинного обучения и глубокого обучения.

 

Концепция логистической регрессии

Логистическая регрессия — это алгоритм двоичной классификации. Это алгоритм принятия решений, что означает, что он устанавливает границы между двумя классами. Он расширяет проблему линейной регрессии, которая использует функцию активации на своих выходах, чтобы ограничить ее между 1 и 0. В результате это используется для задач двоичной классификации. График логистической регрессии выглядит как на рисунке ниже:

Логистическая регрессия с использованием PyTorch

 

Мы можем видеть, что график ограничен между 0 и 1. Нормальная линейная регрессия может дать целевое значение в виде любого действительного числа, но это не относится к логистической регрессии из-за сигмоидной функции. Логистическая регрессия основана на концепции оценки максимального правдоподобия (MLE). Максимальная вероятность — это просто взять распределение вероятностей с заданным набором параметров и спросить: «Насколько вероятно, что я увижу эти данные, если бы мои данные были сгенерированы из этого распределения вероятностей?» Он работает, вычисляя вероятность для каждой отдельной точки данных, а затем умножая все эти вероятности вместе. На практике мы складываем логарифмы правдоподобия.

Если нам нужно построить модель машинного обучения, каждая точка данных независимой переменной будет иметь вид x1 * w1 + x2 * w2… и так далее, давая значение от 0 до 1 при передаче через функцию активации. Если мы возьмем 0,50 в качестве решающего фактора или порога. Тогда любой результат больше 0,5 рассматривается как 1, а любой результат меньше этого считается как 0.

Для более чем 2 классов мы используем подход One-Vs-All. One-Vs-All, также известный как One-Vs-Rest, представляет собой процесс классификации ML с несколькими ярлыками и классами. Он работает, сначала обучая двоичный классификатор для каждой категории, а затем подбирая каждый классификатор для каждого входа, чтобы определить, к какому классу принадлежит этот вход. Если у вашей задачи n классов, One-Vs-All преобразует ваш обучающий набор данных в n задач двоичной классификации.

Функция потерь, связанная с логистической регрессией, — это двоичная кросс-энтропия, которая является обратной по отношению к получению информации. Это также известно как потеря журнала имени. Функция потерь задается уравнением:

Логистическая регрессия с использованием PyTorch

 

Что такое функция потерь?

Функция потерь — это математическая метрика, которую мы хотим уменьшить. Мы хотим построить модель, которая может точно предсказать то, что мы хотим, и один из способов измерить производительность модели — посмотреть на потери, поскольку мы знаем, какие результаты дает модель и что мы должны получить. Мы можем обучить и улучшить нашу модель, используя эту потерю и соответствующим образом корректируя параметры модели. Функции потерь различаются в зависимости от типа алгоритма. Для линейной регрессии популярными функциями потерь являются среднеквадратическая ошибка и средняя абсолютная ошибка, тогда как кросс-энтропия подходит для задач классификации.

 

Что такое функция активации?

Функции активации — это просто математические функции, которые изменяют входную переменную для получения нового выхода. Обычно это делается в машинном обучении, чтобы либо стандартизировать данные, либо ограничить ввод до определенного предела. Популярные функции действия — сигмовидная, выпрямленная линейная единица (ReLU), Tan (h) и т. д.

 

Что такое PyTorch?

Pytorch — популярная альтернатива глубокому обучению, работающая с Torch. Он был создан отделом искусственного интеллекта Facebook, но его можно использовать так же, как и другие варианты. Он используется для разработки множества моделей, но наиболее широко применяется в случаях использования обработки естественного языка (NLP). Pytorch — всегда отличный вариант, если вы хотите создавать модели с очень небольшим количеством ресурсов и хотите удобную, простую в использовании и легкую библиотеку для ваших моделей. Это также кажется естественным, что помогает завершить процесс. Мы будем использовать PyTorch для реализации наших моделей по указанным причинам. Однако алгоритм остается таким же с другими альтернативами, такими как Tensorflow.

 

Реализация логистической регрессии в PyTorch

Мы будем использовать следующие шаги для реализации нашей модели:

  1. Создайте нейронную сеть с некоторыми параметрами, которые будут обновляться после каждой итерации.
  2. Перебрать заданные входные данные.
  3. Входной сигнал будет проходить через сеть с использованием прямого распространения.
  4. Теперь мы рассчитаем потери, используя двоичную кросс-энтропию.
  5. Чтобы минимизировать функцию стоимости, мы обновляем параметры, используя градиентный спуск.
  6. Снова проделайте те же шаги, используя обновленные параметры.

 

Мы будем классифицировать цифры набора данных MNIST. Это популярная задача глубокого обучения, которой учат новичков.

Сначала импортируем необходимые библиотеки и модули.

import torch



from torch.autograd import Variable



import torchvision.transforms as transforms



import torchvision.datasets as dsets




 

Следующим шагом будет импорт набора данных.

train = dsets.MNIST(root='./data', train=True, transform=transforms.ToTensor(), download=False)



test = dsets.MNIST(root='./data', train=False, transform=transforms.ToTensor())




 

Используйте загрузчик данных, чтобы сделать ваши данные повторяемыми

train_loader = torch.utils.data.DataLoader(dataset=train, batch_size=batch_size, shuffle=True)



test_loader = torch.utils.data.DataLoader(dataset=test, batch_size=batch_size, shuffle=False)




 

Определите модель.

class Model(torch.nn.Module):



def __init__(self, inp, out):



super(Model, self).__init__()



self.linear = torch.nn.Linear(inp, out)



def forward(self, x):



outputs = self.linear(x)



return outputs




 

Укажите гиперпараметры, оптимизатор и потери.

batch = 50



n_iters = 1500



epochs = n_iters / (len(train_dataset) / batch)



inp = 784



out = 10



alpha = 0.001



model = LogisticRegression(inp, out)



loss = torch.nn.CrossEntropyLoss()



optimizer = torch.optim.SGD(model.parameters(), lr=alpha)




 

Наконец, обучите модель.

itr = 0



for epoch in range(int(epochs)):



for i, (images, labels) in enumerate(train_loader):



images = Variable(images.view(-1, 28 * 28))



labels = Variable(labels)



optimizer.zero_grad()



outputs = model(images)



lossFunc = loss(outputs, labels)



lossFunc.backward()



optimizer.step()



itr+=1



if itr%500==0:



correct = 0



total = 0



for images, labels in test_loader:



images = Variable(images.view(-1, 28*28))



outputs = model(images)



_, predicted = torch.max(outputs.data, 1)



total+= labels.size(0)



correct+= (predicted == labels).sum()



accuracy = 100 * correct/total



print("Iteration is {}. Loss is {}. Accuracy is {}.".format(itr, lossFunc.item(), accuracy))


 

Вывод

Мы рассмотрели объяснение логистической регрессии и ее реализации с помощью PyTorch, популярной библиотеки для разработки моделей глубокого обучения. Мы реализовали задачу классификации набора данных MNIST, в которой мы распознавали цифры на основе параметров изображений.



2021-12-18T10:51:35
Машинное обучение

Как использовать RDB (файл резервной копии Redis)

Резервное копирование — важная функция в средах конфиденциальных данных, таких как базы данных. Они позволяют нам выполнять реставрацию в случае сбоев и ошибок.

Одним из примеров такой среды является база данных, такая как Redis. Поскольку это база данных находиться в памяти, простая ошибка, такая как сбой питания, может привести к потере данных. Поэтому важно, чтобы ваши данные были постоянными.

Из этой статьи вы узнаете, как работать с Redis Database Backup, чтобы сохранять данные, хранящиеся в памяти, на системный диск и выполнять восстановление из RDB.

 

Резервное копирование данных

Мы используем команду SAVE для резервного копирования текущего набора данных в Redis. Команда создаст снимок, содержащий все данные в кластере Redis в двоичном формате файла dump.rdb.

Чтобы использовать команду SAVE, введите SAVE в интерфейсе командной строки Redis.

192.168.100.78:6379> SAVE

OK

 

После выполнения команды Redis должен вернуть строку OK, указывающую на то, что в команде не было обнаружено ошибок.

В противном случае Redis вернет сообщение об ошибке с указанием типа ошибки в команде. Например, Redis выдаст следующую ошибку для неверных аргументов.

192.168.100.78:6379> SAVE 1

(error) ERR wrong number of arguments for 'save' command

 

После успешного выполнения команды SAVE Redis создаст файл dump.rdb в каталоге Redis.

Redis не рекомендует использовать команду SAVE в производственной среде. Это потому, что он блокирует других клиентов до завершения операции.

Чтобы решить эту проблему, вы можете использовать команду BGSAVE. Она работает аналогично команде SAVE, но использует дочерний процесс в фоновом режиме.

Например:

192.168.100.78:6379> BGSAVE

Background saving started

 

Восстановление данных

Резервные копии бесполезны, если мы не можем их использовать. Давайте обсудим, как вы можете использовать файл dump.rdb для восстановления ваших наборов данных.

Для начала отметьте расположение файла резервной копии dump.rbd.

Затем остановите сервер Redis:

sudo service redis-server stop

 

Переместите файл резервной копии dump.rdp в корень сервера Redis.

sudo mv ~/dump.rdb /var/lib/redis/

 

Теперь у вас должны быть данные из dump.rdb, загруженные в Redis.

 

Вывод

В этой статье мы научились выполнять резервное копирование и восстановление в Redis с помощью файла дампа RDB.



2021-12-17T10:22:51
Redis