1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yangke02-lib4python

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

1. Обзор

1.1 Установка

Один из популярных инструментов для Python. Эта библиотека лучше всего поддерживается для версии Python 3.10. Из-за проблем с зависимостями от сторонних библиотек некоторые функции в этой библиотеке могут иметь проблемы совместимости с версиями Python до 3.9 и после 3.11.

Способ установки 1:

pip install yangke

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

Способ установки 2:

pip install yangke[All]

Эта команда установит все модули и зависимости библиотеки yangke. Модули, содержащиеся в yangke, можно использовать для выполнения методов тестирования, описанных в разделе 1.2.

1.2 Тестирование успешности установки

import yangke
yangke.info()

Если установка прошла успешно, появится следующее сообщение:

Картинка не отображается

2. Маленькие функции

2.1 Вывод журнала

В файле test.py введите следующий код:

from yangke.common.config import logger

logger.debug("debug from yangke logger")
logger.info("info from yangke logger")
logger.warning("warning from yangke logger")
logger.error("error from yangke logger")
logger.critical("critical from yangke logger")

Результат выполнения будет выглядеть следующим образом, и по умолчанию журнал будет выводиться в файл журнала в каталоге выполнения, имя файла журнала — runtime-время выполнения.log.

Картинка не отображается

Расширенная настройка журнала

Используйте файл settings.yaml для настройки формата вывода журнала. Создайте файл settings.yaml в том же каталоге, что и test.py, и введите следующее содержимое:

logger:
  logFile: None # отключить вывод в файл журнала, если необходимо изменить имя файла, можно указать имя файла здесь напрямую
  dateFormat: 'YYYY/MM/DD HH:mm:ss' # формат времени в журнале
  format: '{time} - {level} - {module}:{function}:{line} - {message}'  # формат журнала
  level: 10  # можно выбрать 0, 10, 20, 30, 40, 50, представляющие notset, debug, info, warn, error, fatal соответственно
  levelColor:
    DEBUG: yellow  # нижний регистр представляет передний цвет
    INFO: "GREEN"  # верхний регистр представляет задний цвет

Тогда во время выполнения журнал будет отображаться в соответствии с этим определением, как показано ниже:

Картинка не отображается

Параметры определения формата журнала можно найти в официальной документации loguru. Эта библиотека предоставляет способ настройки журнала с помощью yaml, который удобен для пользователей.

Можно настроить следующие параметры:

  • Различные уровни (level) используют разные стили;
  • Разные поля (например, time, level, module) используют разные стили, которые являются формой по умолчанию для loguru;
  • Стиль текста журнала:
    • Передний цвет, цвет нижнего регистра или «fg » определяет цвет;
    • Задний цвет, цвет верхнего регистра или «bg » определяет цвет;
    • Стиль шрифта, подчёркивание, курсив, жирный шрифт и т. д., определение см. в документации loguru;
  • Формат даты, например, 'YYYY/MM/DD HH:mm:ss';
  • Формат журнала, например, '{time} - {level} - {module}:{function}:{line} - {message}';
  • Способ выравнивания полей;

2.2 Добавление информации о среде выполнения к методам Python

Введите следующий код в test.py:

from yangke.common.config import logger, loggingTitleCall


@loggingTitleCall(title="Инициализация соединения с базой данных MySQL")
def init_mysql():
    logger.info("Проверка доступности MySQL")
    logger.info("Подключение к MySQL")
    logger.info("Соединение с MySQL успешно")


init_mysql()

Результатом выполнения будет:

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

2.3 Выполнение команд в системе Windows

Есть два способа выполнить команду в системе Windows.

from yangke.core import *

runAsAdmin('echo "1111" > ssssss.txt', popup=True)
result = runCMD('echo "11111"', charset="GBK", wait_for_result=True, output_type="RETURN")
print(result)

Результатом выполнения будет:

Картинка не отображается Объяснение:

runAsAdmin(cmd, cwd=None, charset="gbk", python=None, popup=True) 

Этот метод выполняет команду с правами администратора в системе Windows, которая вызовет всплывающее окно подтверждения, чтобы спросить, следует ли выполнять с правами администратора. Если всплывающее окно не требуется, вы можете установить параметр popup=False, но на самом деле это использует уязвимость Windows, и в win10 она будет заблокирована defender, а в win7 она может работать нормально.

runCMD(command: str, charset: str = "utf8", wait_for_result: bool = True, cwd=None,
       output_type: str = "RETURN", timeout=None)

Этот метод может возвращать результат выполнения команды стороннего производителя в основной процесс Python, как в примере выполнения в разделе 2.3. Это очень полезно во многих случаях.

2.4 Определение того, установлена ли конкретная библиотека Python

from yangke.core import existModule

existModule("pandas")

2.5 Чтение csv или txt в pandas.DataFrame

from yangke.common.fileOperate import read_csv_ex

read_csv_ex(file)

Этот метод обрабатывает элементы, охватываемые двойными кавычками и охватывающие строки, решает различные проблемы с кодированием и решает проблему ошибки чтения, вызванную различным количеством элементов в каждой строке. Этот метод решает следующие проблемы:

UnicodeDecodeError 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

pandas.errors.ParserError: Error tokenizing data. C error: Expected 21 fields in line 45, saw 41

Этот метод почти может считывать содержимое любого формата csv и txt файлов, решать проблемы чтения данных и продолжать очистку данных.

Другие параметры этого метода: read_csv_ex (файл, sep = Нет, заголовок = «вывод», skiprows = Нет, error_bad_lines = Истина, nrows = Нет, index_col = Нет, low_memory = Нет, na_values = «»)

2.6 Маленькие инструменты в yangke.base

from yangke.base import *

Затем вы можете использовать следующие методы:

  • Чтение файла yaml и возврат соответствующего объекта словаря или списка объектов

read_from_yaml(файл: str, кодировка = "utf8")

  • Получить IP-адрес текущего компьютера

get_localhost_ip()

  • Получите кодировку текстового файла

get_encoding_of_file(файл)

  • Преобразование изображения в формат base64

Входное изображение может быть url, ndarray или путь к локальному изображению

pic2base64(pic)

  • Преобразовать изображение в формат ndarray

Входное изображение может быть url, ndarray или путь к локальному изображению

pic2ndarray(pic)

  • Конвертировать файл Excel формата xls в xlsx или csv

Этот метод использует установленный Office или WPS на локальном компьютере, поэтому любой файл xls, который может быть открыт локальным Office или WPS, может быть успешно сохранён другим способом. Он обладает чрезвычайно высокой адаптируемостью. Другие библиотеки excel имеют проблемы с невозможностью сохранения или проблемы с кодировкой в некоторых случаях. Перевод текста на русский язык:

1. Использование потоков и запуск функций

  • Открыть новый поток для выполнения указанной целевой функции:

    • start_threads(targets, args_list=()).
  • Перебрать файлы в каталоге:

    • yield_all_file(folder, filter_=None, ignore_temp_file: bool = True).
  • Декоратор метода:

    • @run_once гарантирует, что декорированный метод будет вызван только один раз, последующие вызовы будут игнорироваться во время выполнения.
    • @auto_save_para.

2.7 Поддержка нескольких версий Qt

Используя следующие операторы импорта, можно использовать синтаксис трёх библиотек Python — PySide6, PyQt6 и PyQt5, что позволяет легко поддерживать совместимость программного обеспечения с графическим интерфейсом пользователя (GUI) как с Qt5, так и с Qt6.

  • from yangke.common.QtImporter import QtGui, Qt, QMessageBox, QLabel, QColor.

Любой компонент, который необходимо импортировать из Qt, может быть импортирован из yangke.common.QtImporter, без необходимости заботиться о том, какая версия Qt установлена — PyQt5 или PySide6. Модуль QtImporter автоматически определяет установленную библиотеку Qt и использует правильный импорт. Пользователи могут нормально работать как с PyQt5, так и с PySide6.

Если это одноимённый компонент Qt, то можно импортировать конкретный модуль компонента, а затем использовать [модуль.компонент] для доступа к определённому компоненту Qt. Например:

  • from yangke.common.QtImporter import QAction
    from yangke.common.QtImporter import Qt3DInput.

Здесь доступны как QAction, так и Qt3DInput.QAction, и они являются двумя разными классами. По умолчанию QAction — это QtGui.QAction (PyQt6) или QtWidgets.QAction (PyQt5).

3 Нейронные сети

3.1 Остаточная нейронная сеть (ResNet)

Остаточная нейронная сеть была предложена Microsoft Research и командой, состоящей из Икэмы, Чжан Сянюя, Жэнь Шаоциня и Сунь Цзянь. ResNet выиграла чемпионат ILSVRC (ImageNet Large Scale Visual Recognition Challenge) в 2015 году.

Основной вклад остаточной нейронной сети заключается в обнаружении «явления деградации» и разработке «быстрых соединений» для решения проблемы сложности обучения глубоких нейронных сетей. Это позволяет значительно увеличить глубину нейронных сетей.

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

3.1.1 Проблема глубины сети

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

3.1.2 Явление деградации и контрмеры

Эксперименты показывают, что по мере увеличения количества слоёв нейронной сети точность модели постепенно повышается до максимума, а затем продолжает снижаться без предупреждения при дальнейшем увеличении количества слоёв сети. Команда ResNet назвала это явление «деградацией».

Суть явления деградации заключается в том, что по мере увеличения числа слоёв в нейронной сети становится всё труднее получить эффективный градиент в процессе обучения, поэтому большое количество обновлений весов нейронной сети демонстрирует случайные изменения, то есть явление исчезновения градиента становится всё более очевидным. Чтобы решить эту проблему, команда ResNet добавила быстрые соединительные ветви в модуль ResNet, чтобы градиент мог хорошо передаваться в более глубокие слои нейронной сети.

3.2 Функция активации/функция стимулирования (Activation Function)

3.2.1 Функция relu

Часто используется в свёрточных нейронных сетях.

3.2.2 Сигмоидная функция

3.2.3 Тангенциальная функция

3.2.4 Функция softplus

3.3 Функции классификации

3.3.1 Сигмоид

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

3.3.2 Softmax

Во-первых, мы знаем, что у вероятности есть два свойства: 1) прогнозируемая вероятность является неотрицательным числом; 2) сумма вероятностей всех возможных результатов равна 1.

Softmax преобразует прогнозы на интервале от отрицательной бесконечности до положительной бесконечности в вероятности в соответствии с этими двумя шагами.

3.4 Функции потерь

3.4.1 Перекрёстная энтропия

Сначала рассмотрим информацию. Предположим, мы услышали две вещи:

Событие A: сборная Бразилии вышла в четвертьфинал чемпионата мира 2018 года.

Событие B: сборная Китая вышла в четвертьфинал чемпионата мира 2018 года.

Очевидно, событие B имеет большую информационную ценность, чем событие A. Причина в том, что вероятность события A очень высока, а вероятность события B очень мала. Поэтому, когда происходит маловероятное событие, информация, которую мы получаем, велика. Когда происходит более вероятное событие, информация, которую мы получаем, мала. Тогда информация должна быть связана с вероятностью события.

Информационная энтропия = сумма (вероятность события * информационная ценность события).

Конкретная теория см.: https://www.jianshu.com/p/47172eb86b39.

Короче говоря, эта функция потерь подходит для «многоклассовых задач исключения классов».

3.4.2 Средняя квадратичная ошибка (MSE)

Подходит для задач регрессии.

3.5 Библиотеки нейронных сетей

3.5.1 PyTorch

  • Тип объекта Variable — <class 'torch.Tensor'>, и этот тип такой же, как у объекта torch.FloatTensor.

Хотя типы одинаковы, но при вычислении Variable он молча строит огромную систему, называемую вычислительной диаграммой (computational graph), в фоновом режиме. Эта диаграмма соединяет все шаги вычислений (узлы) вместе, и когда выполняется обратная передача ошибки, она сразу вычисляет величину изменения (градиент) всех переменных, в то время как tensor не имеет этой способности.

  • Преобразование данных numpy и pytorch:

    • torch_data = torch.from_numpy(np_data).
    • np_data = torch_data.numpy().

4 Углеродные цели

4.1 Углеродный сток

Углеродный сток (carbon sink) относится к процессам, действиям или механизмам поглощения углекислого газа из атмосферы через посадку деревьев, восстановление растительности и т. д., тем самым уменьшая концентрацию парниковых газов в атмосфере.

Различают:

  • лесной углеродный сток;
  • травяной углеродный сток;
  • пахотный углеродный сток;
  • почвенный углеродный сток;
  • морской углеродный сток.

4.2 Парниковые газы

Согласно Киотскому протоколу, шесть основных парниковых газов включают двуокись углерода (CO2), метан (CH4), закись азота (N2O), гидрофторуглероды (HFCs), перфторуглероды (PFCs) и гексафторид серы (SF6).

«GB/T 32151.1-2005 Требования к расчёту и отчётности выбросов парниковых газов Часть 1: Электростанции» учитывает только выбросы двуокиси углерода.

4.3 Расчёт выбросов парниковых газов электростанциями

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

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

Интерфейс программного обеспечения можно настроить с помощью файлов ui_table.yaml и ui_panel.yaml. Они определяют формат таблицы и панели ввода соответственно. Файлы размещаются в каталоге программы или в подкаталоге ui.

Файлы содержат данные о ширине столбцов таблицы, цвете фона, выравнивании элементов и другие параметры. Также в них можно определить содержимое кнопок и задать действия, которые будут выполняться при их нажатии.

Пользователь может создавать собственные методы класса MainFrame и привязывать их к кнопкам меню. Для этого нужно указать значение connect, которое будет соответствовать имени метода. Например, для кнопки «О программе» это self.about.

Для работы с данными в таблице можно использовать метод get_value. Он позволяет получить значение элемента по его метке. На основе полученных данных можно выполнять расчёты и отображать результаты в соответствующих ячейках таблицы.

Также в запросе есть информация об использовании SQLAlchemy и pandas для работы с базами данных. Таблица 3. Праздничный календарь (Holiday) используется для определения того, работает ли фондовый рынок A-акций в данный момент.

Таблица 4. Календарь изменений регистрирует последнее время обновления каждой акции.

7 Автоматизация операций

Определение шагов:

Шаги.png

op target = типы операций шага включают:

  • click key: нажать клавишу на клавиатуре;
  • press key: удерживать клавишу на клавиатуре;
  • release key: отпустить клавишу на клавиатуре;
  • left click: щёлкнуть левой кнопкой мыши;
  • right click: щёлкнуть правой кнопкой мыши;
  • double click: дважды щёлкнуть мышью.

judge = тип ожидания условия:

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

condition = типы условий включают:

  • наличие текста: указанный текст присутствует на экране;
  • наличие изображения: указанное изображение присутствует на экране;
  • отсутствие текста: указанный текст исчезает с экрана, условие выполнено;
  • отсутствие изображения: указанное изображение исчезает с экрана, условие выполнено;
  • нет: когда судья повторяет, это условие никогда не выполняется; когда судья ждёт, это условие всегда выполняется.

Эффект [судья=ждать и условие=нет] такой же, как и у [судья=нет].

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Это библиотека популярных инструментов Python, которая также предоставляет инструменты для вызова различных алгоритмов оптимизации. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/yangke02-lib4python.git
git@api.gitlife.ru:oschina-mirror/yangke02-lib4python.git
oschina-mirror
yangke02-lib4python
yangke02-lib4python
master