我正在开发一个python桌面应用程序.这个应用程序做了一些预测.现在我使用python脚本训练我的sklearn模型,将模型的参数保存为yaml文件中的字典.然后,我将这个yaml构建到我的python应用程序中.然后,当我使用应用程序时,使用字典中的参数重新创建模型.我意识到,拥有不同版本的sklearn的人会收到错误.我试图将我的模型保存在pickle文件中,但在这种情况下,当app在具有不同版本sklearn的机器上运行时,它会产生一些警告.
我正在 Keras 中训练 VGG16 的最后一层。我的模型看起来像:
map_characters1 = {0: 'No Pneumonia', 1: 'Yes Pneumonia'}
class_weight1 = class_weight.compute_class_weight('balanced', np.unique(y_train), y_train)
weight_path1 = './imagenet_models/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5'
pretrained_model_1 = VGG16(weights = 'imagenet', include_top=False, input_shape=(200, 200, 3))
optimizer1 = keras.optimizers.Adam(lr=0.0001)
def pretrainedNetwork(xtrain,ytrain,xtest,ytest,pretrainedmodel,pretrainedweights,classweight,numclasses,numepochs,optimizer,labels):
base_model = pretrained_model_1 # Topless
# Add top layer
x = base_model.output
x = Flatten()(x)
predictions = Dense(numclasses, activation='relu')(x)
model = Model(inputs=base_model.input, outputs=predictions)
# Train top layer
for layer in base_model.layers:
layer.trainable = False
model.compile(loss='categorical_crossentropy',
optimizer=optimizer,
metrics=['accuracy'])
callbacks_list = [keras.callbacks.EarlyStopping(monitor='val_acc', patience=3, verbose=1)]
model.summary()
# Fit …
Run Code Online (Sandbox Code Playgroud) 我创建了一个画布,然后创建了一个框架作为画布的子项。我发现,我不应该使用pack()
将框架放在画布中。我用了
my_canvas.create_window(0,0,window=my_frame, anchor='nw')
Run Code Online (Sandbox Code Playgroud)
但我希望我的框架可以通过我的应用程序调整大小。因此,我想,我需要fill=BOTH, expand=YES
为我的框架添加类似的东西。