Хобрук: Ваш путь к мастерству в программировании

Как запустить ML в подпрограмме обработки материалов Abaqus?

Я использую Abaqus для запуска симуляций FEA, которые включают подпрограмму пользователя материала (umat), написанную на Fortran 77 для определения модели материала. В настоящее время мне нужно использовать данные моделирования (во время выполнения) для обучения алгоритма машинного обучения (SVR или регрессия случайного леса еще не выбраны). Естественно, большинство модулей ML написаны на python, а не на Fortran, поэтому я до сих пор пробовал следующий подход:

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

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

Единственная альтернатива, которую я мог придумать, заключалась в том, чтобы закодировать алгоритм ML на Фортране, в самой подпрограмме, проблема в том, что это нетривиально, например, SVR требует решения задачи оптимизации с использованием множителей Лагранжа, что реализация, если Фортран довольно сложный и очень трудоемкий.


  • Что такое МЛ?.... 21.11.2019
  • Python можно вызывать напрямую из других языков, используя интерфейс C. Нет, это не просто. Если бы у вас было что-то на C++ вместо Python, вызывать его было бы гораздо проще. Наконец, обратите внимание, что язык называется Fortran, а не FORTRAN, и называется так уже 30 лет. И Abaqus не требует Fortran 77. 21.11.2019
  • Спасибо @VladimirF. Хотя есть несколько модулей C++ для машинного обучения, меня беспокоит производительность, поскольку основная проблема заключается в самом вызове подсказки. Мне удалось вызвать скрипт python, дело в том, что он выполняется снова и снова. Разве это не было бы проблемой и для скрипта C++? 21.11.2019
  • Нет, вам придется вызывать функцию C++ непосредственно из Фортрана, без подсказки. 21.11.2019

Новые материалы

Создание кнопочного меню с использованием HTML, CSS и JavaScript
Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

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

Классы в JavaScript
class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

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

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

Обзор: Машинное обучение: классификация
Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

Разработка расширений Qlik Sense с qExt
Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..