在Keras中,作为TensorFlow的简化界面:教程描述了如何在TensorFlow张量上调用Keras模型.
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)
Run Code Online (Sandbox Code Playgroud)
他们还说:
注意:通过调用Keras模型,您将重用其体系结构和权重.当您在张量上调用模型时,您将在输入张量之上创建新的TF操作,并且这些操作正在重用模型中已存在的TF变量实例.
我将此解释为模型的权重与模型中的权重相同y.但是,对我来说,似乎重新初始化了生成的Tensorflow节点中的权重.一个最小的例子如下:
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() …Run Code Online (Sandbox Code Playgroud)