Llamar a un modelo Keras en un tensor TensorFlow pero mantener pesos

EnKeras como una interfaz simplificada para TensorFlow: tutorial describen cómo se puede llamar a un modelo Keras en un tensor 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)

También dicen:

Nota: al llamar a un modelo Keras, está reutilizando tanto su arquitectura como sus pesos. Cuando llama a un modelo en un tensor, está creando nuevas operaciones TF en la parte superior del tensor de entrada, y estas operaciones están reutilizando las instancias de TF Variable ya presentes en el modelo.

Interpreto esto como que los pesos del modelo serán los mismos eny como en modelo. Sin embargo, para mí parece que los pesos en el nodo Tensorflow resultante se reinicializan. Un ejemplo mínimo se puede ver a continuación:

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))
Por qué quiero hacer esto:

Quiero usar una red capacitada en otro esquema de minimización donde la red "castiga" lugares en el espacio de búsqueda que no están permitidos. Entonces, si tiene ideas que no involucren este enfoque específico, eso también es muy apreciado.

Respuestas a la pregunta(1)

Su respuesta a la pregunta