переменные, включая веса в модели Кераса, которые я хотел оставить нетронутыми.

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

from keras.models import Sequential

model = Sequential()
model.add(Dense(32, activation='relu', input_dim=784))
model.add(Dense(10, activation='softmax'))

# this works! 
x = tf.placeholder(tf.float32, shape=(None, 784))
y = model(x)

Примечание: вызывая модель Keras, вы повторно используете и ее архитектуру, и ее веса. Когда вы вызываете модель для тензора, вы создаете новые операции TF поверх входного тензора, и эти операции повторно используют экземпляры TF Variable, уже присутствующие в модели.

Я интерпретирую это так, что веса модели будут одинаковыми в

 как в модели. Однако для меня кажется, что веса в результирующем узле Tensorflow переинициализированы. Минимальный пример можно увидеть ниже:yПочему я хочу сделать это:

import numpy as np
from keras.models import Sequential
from keras.layers import Dense
# Create model with weight initialized to 1
model = Sequential()
model.add(Dense(1, input_dim=1, kernel_initializer='ones',
                bias_initializer='zeros'))
model.compile(loss='binary_crossentropy', optimizer='adam',
              metrics=['accuracy'])

# Save the weights 
model.save_weights('file')

# Create another identical model except with weight initialized to 0
model2 = Sequential()
model2.add(Dense(1, input_dim=1, kernel_initializer='zeros',
                 bias_initializer='zeros'))
model2.compile(loss='binary_crossentropy', optimizer='adam',
               metrics=['accuracy'])
# Load the weight from the first model
model2.load_weights('file')
# Call model with Tensorflow tensor
v = tf.Variable([[1, ], ], dtype=tf.float32)
node = model2(v)
sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)
print(sess.run(node), model2.predict(np.array([[1, ], ])))
# Prints (array([[ 0.]], dtype=float32), array([[ 1.]], dtype=float32))
Я хочу использовать обученную сеть в другой схеме минимизации, где сеть "наказывает" места в пространстве поиска, которые не разрешены. Поэтому, если у вас есть идеи, не связанные с этим конкретным подходом, это также очень ценится.

Наконец-то нашел ответ. Есть две проблемы в примере из вопроса.

Ответы на вопрос(1)

Ваш ответ на вопрос