Как заставить.NET искать блоки в локальных папках сначала вместо GAC?

Merge(mode='concat') сейчас Concatenate(axis=1).

Следующее генерирует график правильно на colab.

from tensorflow.python import keras
from keras.layers import *
from keras.models import Model, Sequential

IMG_FEATURES_SIZE = 10
MAX_SENTENCE = 80
VOCABULARY_SIZE = 1000
EMB_SIZE = 100

embedding_matrix = np.zeros((VOCABULARY_SIZE, EMB_SIZE))

LSTM_CELLS_CAPTION = 256
LSTM_CELLS_MERGED = 1000

image_pre = Sequential()
image_pre.add(Dense(100, input_shape=(IMG_FEATURES_SIZE,), activation='relu', name='fc_image'))
image_pre.add(RepeatVector(MAX_SENTENCE,name='repeat_image'))

caption_model = Sequential()
caption_model.add(Embedding(VOCABULARY_SIZE, EMB_SIZE,
                            weights=[embedding_matrix],
                            input_length=MAX_SENTENCE,
                            trainable=False, name="embedding"))
caption_model.add(LSTM(EMB_SIZE, return_sequences=True, name="lstm_caption"))
caption_model.add(TimeDistributed(Dense(100, name="td_caption")))

merge = Concatenate(axis=1,name="merge_models")([image_pre.output, caption_model.output])
lstm = Bidirectional(LSTM(256,return_sequences=False, name="lstm_merged"),name="bidirectional_lstm")(merge)
output = Dense(VOCABULARY_SIZE, name="fc_merged", activation='softmax')(lstm)

predictive = Model([image_pre.input, caption_model.input], output)
predictive.compile('sgd', 'binary_crossentropy')
predictive.summary()

Описание:

Это модель с 2 входами на выборку: изображение и подпись (последовательность слов). Входные графики объединяются в точке конкатенации (name = 'merge_models')

Изображение обрабатывается просто плотным слоем (возможно, вы захотите добавить свертки к ветви изображения); выходные данные этого плотного слоя затем копируются MAX_SENTENCE раз при подготовке к слиянию.

Подписи обрабатываются LSTM и Плотным слоем.

Объединение приводит к временным шагам MAX_SENTENCE, каждый с особенностями из обеих ветвей.

Затем объединенная ветвь в конечном итоге предсказывает один класс из VOCABULARY_SIZE.

model.summary () - хороший способ понять график.

7
задан starblue 6 May 2009 в 06:31
поделиться

4 ответа

Нет. Это невозможно достичь. Если в GAC существует DLL версии, равной той, на которую ссылается ваша программа, CLR всегда выберет эту. Нет способа переопределить это поведение.

17
ответ дан 6 December 2019 в 07:52
поделиться

Подробнее. об обходных путях в этом SO потоке .

3
ответ дан 6 December 2019 в 07:52
поделиться

JaredPar прав - GAC будет всегда опрашиваться первым для сборки. Однако, если вы похожи на меня и хотите, чтобы DLL работала в GAC и все еще отлаживалась, вы можете добавить скрипт сборки, чтобы выгрузить ваш файл .pdb в ту же папку, что и сборка в GAC (она будет в C: \ windows \ assembly \ gac_msil \ assembly.name_ [токен открытого ключа]).

1
ответ дан 6 December 2019 в 07:52
поделиться

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

2
ответ дан 6 December 2019 в 07:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: