Microsoft Visual Studio SDK Инструменты DSL - Какие-либо серьезные берущие?

model.forward просто вызывает операции пересылки, как вы упомянули, но __call__ делает немного больше.

Если вы покопаетесь в коде класса класса nn.Module, вы увидите, что __call__ в конечном счете вызывает переадресацию, но внутренне обрабатывает перехватчики вперед или назад и управляет некоторыми состояниями, которые позволяет pytorch. При вызове простой модели, такой как просто MLP, она может и не понадобиться, но более сложные модели, такие как слои спектральной нормализации, имеют зацепки, и поэтому вам следует использовать сигнатуру model(.) как можно чаще, если вы явно не хотите вызывать model.forward [ 1110]

Также см. Вызов функции forward без .forward ()

В этом случае, однако, разница может быть из-за некоторого выпадающего слоя, вам следует вызвать vgg.eval() для убедитесь, что вся стохастичность в сети отключена, прежде чем сравнивать результаты.

10
задан Jon Seigel 23 May 2010 в 03:24
поделиться

4 ответа

Мы сделали значительную работу с DSLs и имеем много их для в доме и основанном на клиенте использовании консультанта, хотя это не имеет меня, кто сделал большую часть работы с ними. После того как Вы сгладили моделирование (никакой маленький подвиг), я сказал бы, что это большие инструменты.

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

редактирование - после опыта нескольких лет я делаю следующие наблюдения:

  1. DSLs VS имеют плохую визуальную производительность большие схемы, Вы должны сложить элементы модели (скрываются/показывают)
  2. по большим схемам со многими взаимосвязанными строками трудно переместиться (разметки трудны),
  3. Большие модели работают соответственно для генерала кода и т.д. со временем, потраченным главным образом на десериализации (как ожидалось)
  4. Образцовое сравнение является трудным из-за большого количества GUID
  5. Хороший опыт разработчика требует большой разработки по из диалоговых окон свойств поля.
  6. Модели могут быть зашифрованы для защиты IP, это делает сравнение позже чрезвычайно трудно (но это верно для всех зашифрованных файлов.)
5
ответ дан 4 December 2019 в 01:03
поделиться

Я - определенно серьезный берущий. Ivé недавно сделал dsl для моделирования orderprocesses для orderingsystem. Мы используем windowsservice, который это подключает к различным веб-сервисам, на основе которого processtatus определенная строка имеет и затем изменяет состояние на основе результата (Затем, Ошибка, Отказ). Это было очень трудоемким для редактирования той таблицы базы данных вручную, таким образом, я сделал язык и генераторы для кода SQL.

Я должен проверить, разрешают ли мне отправить какой-либо код из проекта, но я отправляю структуру DB, таким образом, можно понять, почему это твердо, действительно редактируют это вручную. Я должен вставить данные для приблизительно. 10 orderprocesses с 5-20 шагами каждый с действиями и всем (ProcessActionId является ссылкой на веб-сервис).

CREATE TABLE [dbo].[OrderProcessStep](
    [OrderProcessCode] [int] NOT NULL,
    [PreviousProcessStatusCode] [int] NOT NULL,
    [NextProcessStatusCode] [int] NULL,
    [DenialProcessStatusCode] [int] NULL,
    [ErrorProcessStatusCode] [int] NULL,
    [ProcessActionId] [int] NULL,
    [StepComment] [varchar](500) NOT NULL,
    [SecondsToNext] [int] NULL,
    [SecondsToError] [int] NULL,
    [SecondsToDenial] [int] NULL,
 CONSTRAINT [PK_OrderProcess] PRIMARY KEY CLUSTERED 
(
    [OrderProcessCode] ASC,
    [PreviousProcessStatusCode] ASC
)
0
ответ дан 4 December 2019 в 01:03
поделиться

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

2
ответ дан 4 December 2019 в 01:03
поделиться

Я рассмотрел использование инструментария Visual Studio DSL. В конце концов, я обнаружил, что эти инструменты далеко не ограничивают возможности. To require a GUI, without any ability to easily describe an underlying textual grammar, just seems inadequate to me. I require the ability to easily use the DSL without a GUI.

Oslo seems to be going in a very strange direction, storing all metadata for the DSL in a SQL DB. That just seems extraneous to me, and certainly can slow things down, especially if you want fast IDE integration. Admittedly I have not looked deeply into it, so it may be better than my impression of it.

As an aside, I recently implemented a DSL using Antlr. You can find my post as a response to a question on SO about it here

4
ответ дан 4 December 2019 в 01:03
поделиться