Как сделать историю в хистори

Обновлено: 04.07.2024

В Keras мы можем вернуть вывод model.fit в историю следующим образом:

Теперь, как сохранить атрибут истории объекта истории в файл для дальнейшего использования (например, нарисовать графики прибыли или убытка по эпохам)?

Я использую следующее:

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

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

Где saveHist просто нужно получить путь к месту, где должен быть сохранен файл json, и объект истории, возвращенный из метода keras fit или fit_generator .

История model может быть сохранена в файл следующим образом

Объекты history имеют поле history - это словарь, который содержит различные метрики обучения, охватывающие каждую эпоху обучения. Так, например history.history['loss'][99] вернет потерю вашей модели в сотую эпоху обучения. Чтобы сохранить это, вы можете pickle этот словарь или просто сохранить разные списки из этого словаря в соответствующий файл.

Я уверен, что есть много способов сделать это, но я возился и придумал свою собственную версию.

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

После этого все, что вам нужно, это установить history_filename на что-то вроде data/model-history.json , а также установить model_filesname на что-то вроде data/model.h5 . Последний трюк, чтобы убедиться, что вы не испортите свою историю в конце обучения, предполагая, что вы останавливаетесь и начинаете, а также придерживаетесь обратных вызовов, заключается в следующем:

Когда бы вы ни захотели, history = loadHist(history_filename) вернет вашу историю.

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

Чтобы просмотреть список ранее открытых на вкладке страниц:

Значок появляется только на вкладках, в которых вы просмотрели несколько страниц. Если значок недоступен, перейдите ко всей истории.

  • История первой вкладки
  • История второй вкладки

Просмотр всей истории

Примечание. Отменить сохранение истории в Браузере нельзя. Если вы не хотите сохранять историю посещений, войдите в режим Инкогнито.

Чтобы быстро найти нужную страницу, нажмите значок на боковой панели и введите название страницы в поиск.

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

Чтобы посмотреть всю историю, нажмите → История → История или нажмите клавиши Ctrl + H .

Чтобы найти в истории нужную страницу, в поле Поиск введите часть ее названия или адреса. Справа отобразится список страниц, которые соответствуют условию поиска.

Удаление страниц из истории

Очистка всей истории

Синхронизация истории

История страниц, которые пользователь посетил на компьютере, синхронизируется. Если вы переустановите браузер, а затем включите синхронизацию, история появится на странице browser://history/ .

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

Чтобы отключить синхронизацию истории:

Горячие клавиши и жесты мыши для работы с историей

Чтобы выполнять жесты, удерживайте правую кнопку мыши. Выполнив жест, отпустите кнопку.

Ctrl + Shift + Del

Нажмите правую кнопку мыши. Удерживая ее, нажмите левую кнопку.

Нажмите левую кнопку мыши. Удерживая ее, нажмите правую кнопку.

Ctrl + Shift + Del

Нажмите правую кнопку мыши. Удерживая ее, нажмите левую кнопку.

Нажмите левую кнопку мыши. Удерживая ее, нажмите правую кнопку.

Внимание. Если вы пользуетесь однокнопочной мышью в macOS, все жесты нужно выполнять, удерживая клавишу Ctrl и кнопку мыши.

Нажмите правую кнопку мыши. Удерживая ее, нажмите левую кнопку.

Нажмите левую кнопку мыши. Удерживая ее, нажмите правую кнопку.

Нажмите правую кнопку мыши. Удерживая ее, нажмите левую кнопку.

Нажмите левую кнопку мыши. Удерживая ее, нажмите правую кнопку.

Просмотр истории вкладки

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

Чтобы просмотреть список ранее открытых на вкладке страниц:


Нажмите и удерживайте значок .


Значок появляется только на вкладках, в которых вы просмотрели несколько страниц. Если значок недоступен, перейдите ко всей истории.

  • История первой вкладки
  • История второй вкладки



Просмотр всей истории

Примечание. Отменить сохранение истории в Браузере нельзя. Если вы не хотите сохранять историю посещений, войдите в режим Инкогнито.


Чтобы быстро найти нужную страницу, нажмите значок на боковой панели и введите название страницы в поиск.

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


Чтобы посмотреть всю историю, нажмите → История → История или нажмите клавиши Ctrl + H .

Чтобы найти в истории нужную страницу, в поле Поиск введите часть ее названия или адреса. Справа отобразится список страниц, которые соответствуют условию поиска.


Удаление страниц из истории


Нажмите → История → История .

Очистка всей истории


Нажмите → История → История .

Синхронизация истории

История страниц, которые пользователь посетил на компьютере, синхронизируется. Если вы переустановите браузер, а затем включите синхронизацию, история появится на странице browser://history/ .

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

Чтобы отключить синхронизацию истории:


Нажмите → Настройки → Настройки синхронизации .

Горячие клавиши и жесты мыши для работы с историей

Чтобы выполнять жесты, удерживайте правую кнопку мыши. Выполнив жест, отпустите кнопку.

Ctrl + Shift + Del




Нажмите правую кнопку мыши. Удерживая ее, нажмите левую кнопку.


Нажмите левую кнопку мыши. Удерживая ее, нажмите правую кнопку.

Ctrl + Shift + Del




Нажмите правую кнопку мыши. Удерживая ее, нажмите левую кнопку.


Нажмите левую кнопку мыши. Удерживая ее, нажмите правую кнопку.

Внимание. Если вы пользуетесь однокнопочной мышью в macOS, все жесты нужно выполнять, удерживая клавишу Ctrl и кнопку мыши.

Например: В некотором окне (вкладке) браузера пользователь изначально открыл страницу 1. Просмотрев эту страницу, пользователь нажал в ней на некоторую ссылку и перешёл на страницу 2. На второй странице пользователь снова нажал на ссылку и перешёл на страницу 3. В результате сессия истории для этого окна (вкладки) будет состоять из 3 элементов.

JavaScript - история переходов в пределах одного окна (вкладки)

JavaScript - история переходов в пределах одного окна (вкладки)

Каждый элемент в сессии состоит из:

Свойства, методы и события объекта history

JavaScript - метод history.pushstate()

Данный метод принимает 3 параметра:

  • data (обязательный параметр) - некоторые данные, которые будут связаны с этой записью в сессии истории. Если в данных нет необходимости, то используйте в качестве параметра значение null .
  • title (обязательный параметр) - название записи в сессии истории.
  • url (необязательный параметр) - это URL записи в сессии истории. Если URL не указать, то будет использоваться текущий адрес страницы.

JavaScript - метод history.replacestate()

В качестве примера рассмотрим работу с объектом history в консоли браузера:

До появления HTML5 единственное, что мы не могли контролировать и управлять (без перезагрузки контента или хаков с location.hash) — это история одного таба. С появлением HTML5 history API все изменилось — теперь мы можем гулять по истории (раньше тоже могли), добавлять элементы в историю, реагировать на переходы по истории и другие полезности. В этой статье мы рассмотрим HTML5 History API и напишем простой пример, иллюстрирующий его возможности.

Основные понятия и синтаксис

History API опирается на один DOM интерфейс — объект History. Каждый таб имеет уникальный объект History, который находится в window.history . History имеет несколько методов, событий и свойств, которыми мы можем управлять из JavaScript. Каждая страница таба(Document object) представляет собой объект коллекции History. Каждый элемент истории состоит из URL и/или объекта состояния (state object), может иметь заголовок (title), Document object, данные форм, позиция скролла и другую информацию, связанную со страницей.

  1. window.history.length : Количество записей в текущей сессии истории
  2. window.history.state : Возвращает текущий объект истории
  3. window.history.go(n) : Метод, позволяющий гулять по истории. В качестве аргумента передается смещение, относительно текущей позиции. Если передан 0, то будет обновлена текущая страница. Если индекс выходит за пределы истории, то ничего не произойдет.
  4. window.history.back() : Метод, идентичный вызову go(-1)
  5. window.history.forward() : Метод, идентичный вызову go(1)
  6. window.history.pushState(data, title [, url]) : Добавляет элемент истории.
  7. window.history.replaceState(data, title [, url]) : Обновляет текущий элемент истории

Для добавления элементов истории мы можем использовать history.pushState :

Для изменения записи истории мы можем использовать history.replaceState :

Живой пример

image

Теперь мы знаем основы, давайте посмотрим на живой пример. Мы будем делать веб файловый менеджер, который позволит вам найти URI выбранного изображения(посмотрите то, что получится в конце). Файловый менеджер использует простую файловую структуру, написанную на JavaScript. Когда вы выбираете файл или папку картинка динамически обновляется.

Мы используем data-* атрибуты для хранения заголовка каждой картинки и используем свойство dataset для получения этого свойства:

Чтобы все работало быстро мы подгружаем все картинки и обновляем атрибут src динамически. Это ускорение создает одну проблему — оно ломает кнопку назад, поэтому вы не можете переходить по картинками вперед или назад.

У нас есть 2 дива. Один содержит структуру папок, другой содержит текущую картинку. Все приложение управляется с помощью JavaScript. В будут освещены только самые важные моменты. Исходный код примера очень короткий (порядка 80 строк) посмотрите его после прочтения всей статьи.

Метод bindEvents навешивает обработчики для события popstate , который вызывается, когда пользователь переходит по истории и позволяет приложению обновлять свое состояние.

Объект event , который передается в обработчик события popstate имеет свойство state — это данные, которые мы передали в качестве первого аргумента pushState или replaceState .

Мы навешиваем обработчик на событие click на див, который представляет нашу файловую структуру. Используя делегацию событий, мы открываем или закрываем папку или загружаем картинку (с добавлением записи в историю). Мы смотрим на className родительского элемента для того, чтобы понять на какой из элементов мы нажали:
— Если это папка мы открываем или закрываем её
— Если это картина, то мы показываем её и добавляем элемент истории


Метод, который изменяет содержимое картинки и обновляет её подпись очень прост:

Когда можно будет использовать?

Firefox 4+
Safari 5+
Chrome 10+
Opera 11.5+
iOS Safari 4.2+
Android 2.2+
IE .
Список браузеров, поддерживающих history API

Читайте также: