小编Ioa*_*ios的帖子

如何保存和加载xgboost模型?

XGBoost指南的链接上,

  1. 可以保存模型. bst.save_model('0001.model')
  2. 模型及其特征映射也可以转储到文本文件中.
    bst.dump_model('dump.raw.txt') # dump model bst.dump_model('dump.raw.txt','featmap.txt')# dump model with feature map
  3. 可以按如下方式加载已保存的模型: bst = xgb.Booster({'nthread':4}) #init model bst.load_model("model.bin") # load data

我的问题是:

  1. save_model&之间有什么区别dump_model
  2. 保存'0001.model''dump.raw.txt','featmap.txt'?之间的区别是什么?
  3. 为什么加载的型号名称model.bin与要保存的名称不同0001.model
  4. 假设我训练两个模型model_Amodel_B,我想保存这两种模式以供将来使用,这saveload我应该使用功能?你能帮忙展示清楚的过程吗?

python machine-learning save xgboost

26
推荐指数
5
解决办法
3万
查看次数

什么是Keras的"指标"?

目前还不清楚是什么metrics(如下面的代码所示).他们究竟在评估什么?为什么我们需要在model?中定义它们?为什么我们可以在一个模型中拥有多个指标?更重要的是,这背后的机制是什么?任何科学参考也值得赞赏.

model.compile(loss='mean_squared_error',
              optimizer='sgd',
              metrics=['mae', 'acc'])
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network deep-learning keras

20
推荐指数
2
解决办法
6097
查看次数

Keras:如何使用fit_generator和多个输入

是否有可能有两个fit_generator?

我正在创建一个带有两个输入的模型,模型配置如下所示.

在此输入图像描述

标签Y对X1和X2数据使用相同的标签.

将继续发生以下错误.

检查模型输入时出错:传递给模型的Numpy数组列表不是模型预期的大小.预期看到2个阵列,但是得到以下1个阵列的列表:[array([[[[0.75686276,0.75686276,0.75686276],[0.75686276,0.75686276,0.75686276],[0.75686276,0.75686276,0.75686276],.... ..,[0.65882355,0.65882355,0.65882355 ...

我的代码看起来像这样:

def generator_two_img(X1, X2, Y,batch_size):
    generator = ImageDataGenerator(rotation_range=15,
                                   width_shift_range=0.2,
                                   height_shift_range=0.2,
                                   shear_range=0.2,
                                   zoom_range=0.2,
                                   horizontal_flip=True,
                                   fill_mode='nearest')

    genX1 = generator.flow(X1, Y, batch_size=batch_size)
    genX2 = generator.flow(X2, Y, batch_size=batch_size)

    while True:
        X1 = genX1.__next__()
        X2 = genX2.__next__()
        yield [X1, X2], Y
  """
      .................................
  """
hist = model.fit_generator(generator_two_img(x_train, x_train_landmark, 
                y_train, batch_size),
                steps_per_epoch=len(x_train) // batch_size, epochs=nb_epoch,
                callbacks = callbacks,
                validation_data=(x_validation, y_validation),
                validation_steps=x_validation.shape[0] // batch_size, 
                `enter code here`verbose=1)
Run Code Online (Sandbox Code Playgroud)

python machine-learning generator neural-network keras

15
推荐指数
2
解决办法
8765
查看次数

Keras:如何在ImageDataGenerator中使用predict_generator?

我对Keras很新.我训练了一个模型,并希望预测存储在子文件夹中的一些图像(比如用于训练).为了测试,我想预测7个类(子文件夹)中的2个图像.下面的test_generator可以看到14张图片,但我得到了196张预测.哪里出错了?非常感谢!

test_datagen = ImageDataGenerator(rescale=1./255)

test_generator = test_datagen.flow_from_directory(
        test_dir,
        target_size=(200, 200),
        color_mode="rgb",
        shuffle = "false",
        class_mode='categorical')

filenames = test_generator.filenames
nb_samples = len(filenames)

predict = model.predict_generator(test_generator,nb_samples)
Run Code Online (Sandbox Code Playgroud)

python machine-learning generator deep-learning keras

14
推荐指数
3
解决办法
3万
查看次数

如何使用 keras 构建注意力模型?

我正在尝试理解注意力模型并自己构建一个。经过多次搜索,我发现了这个网站,它有一个用 keras 编码的注意力模型,而且看起来也很简单。但是当我试图在我的机器上构建相同的模型时,它给出了多个参数错误。错误是由于传入 class 的参数不匹配Attention。在网站的注意力类中,它要求一个参数,但它用两个参数启动注意力对象。

import tensorflow as tf

max_len = 200
rnn_cell_size = 128
vocab_size=250

class Attention(tf.keras.Model):
    def __init__(self, units):
        super(Attention, self).__init__()
        self.W1 = tf.keras.layers.Dense(units)
        self.W2 = tf.keras.layers.Dense(units)
        self.V = tf.keras.layers.Dense(1)
    def call(self, features, hidden):
        hidden_with_time_axis = tf.expand_dims(hidden, 1)
        score = tf.nn.tanh(self.W1(features) + self.W2(hidden_with_time_axis))
        attention_weights = tf.nn.softmax(self.V(score), axis=1)
        context_vector = attention_weights * features
        context_vector = tf.reduce_sum(context_vector, axis=1)
        return context_vector, attention_weights

sequence_input = tf.keras.layers.Input(shape=(max_len,), dtype='int32')

embedded_sequences = tf.keras.layers.Embedding(vocab_size, 128, input_length=max_len)(sequence_input)

lstm = tf.keras.layers.Bidirectional(tf.keras.layers.LSTM
                                     (rnn_cell_size,
                                      dropout=0.3,
                                      return_sequences=True, …
Run Code Online (Sandbox Code Playgroud)

python deep-learning keras tensorflow attention-model

14
推荐指数
2
解决办法
1万
查看次数

在Keras模型中使用Tensorflow feature_column

如何将Tensorflow feature_column与Keras 模型结合使用?

例如,对于Tensorflow估算器,我们可以使用Tensorflow Hub中的嵌入列:

embedded_text_feature_column = hub.text_embedding_column(
    key="sentence", 
    module_spec="https://tfhub.dev/google/nnlm-en-dim128/1")

estimator = tf.estimator.DNNClassifier(
hidden_units=[100],
feature_columns=[embedded_text_feature_column],
n_classes=2,
optimizer=tf.train.AdamOptimizer(learning_rate=0.001))
Run Code Online (Sandbox Code Playgroud)

但是,我想使用TF Hub text_embedding_column作为Keras模型的输入.例如

net = tf.keras.layers.Input(...) # use embedding column here
net = tf.keras.layers.Flatten()
net = Dense(100, activation='relu')(net)
net = Dense(2)(net)
Run Code Online (Sandbox Code Playgroud)

这可能吗?

deep-learning keras tensorflow

13
推荐指数
1
解决办法
798
查看次数

在Keras中,如何获取与模型中包含的"Model"对象关联的图层名称?

我在初始基础上使用VGG16网络构建了一个Sequential模型,例如:

from keras.applications import VGG16
conv_base = VGG16(weights='imagenet',
                  # do not include the top, fully-connected Dense layers 
                  include_top=False,
                  input_shape=(150, 150, 3))

from keras import models
from keras import layers

model = models.Sequential()
model.add(conv_base)
model.add(layers.Flatten())
model.add(layers.Dense(256, activation='relu'))
# the 3 corresponds to the three output classes
model.add(layers.Dense(3, activation='sigmoid'))
Run Code Online (Sandbox Code Playgroud)

我的模型看起来像这样:

model.summary()
Run Code Online (Sandbox Code Playgroud)

Layer (type)                 Output Shape              Param #   
=================================================================
vgg16 (Model)                (None, 4, 4, 512)         14714688  
_________________________________________________________________
flatten_1 (Flatten)          (None, 8192)              0         
_________________________________________________________________
dense_7 (Dense)              (None, 256)               2097408   
_________________________________________________________________
dense_8 (Dense)              (None, 3) …
Run Code Online (Sandbox Code Playgroud)

keras keras-layer convolutional-neural-network

12
推荐指数
4
解决办法
2万
查看次数

如何存储缩放参数供以后使用

我想应用缩放sklearn.preprocessing.scale模块,该模块scikit-learn提供中心化数据集,我将用它来训练svm分类器.

然后,我如何存储标准化参数,以便我也可以将它们应用于我要分类的数据?

我知道我可以使用standarScaler但我可以以某种方式将其序列化为一个文件,以便每次我想运行分类器时我都不必适应我的数据吗?

python normalization standardized scikit-learn

11
推荐指数
3
解决办法
5030
查看次数

在keras中Flatten()和GlobalAveragePooling2D()之间有什么区别?

我想将ConvLSTM和Conv2D的输出传递给Keras中的Dense Layer,使用全局平均池和flatten之间的区别是两者都适用于我的情况.

model.add(ConvLSTM2D(filters=256,kernel_size=(3,3)))
model.add(Flatten())
# or model.add(GlobalAveragePooling2D())
model.add(Dense(256,activation='relu'))
Run Code Online (Sandbox Code Playgroud)

keras keras-layer

10
推荐指数
4
解决办法
5718
查看次数

使用Dropout与Keras和LSTM/GRU单元

在Keras中,您可以像这样指定一个dropout图层:

model.add(Dropout(0.5))
Run Code Online (Sandbox Code Playgroud)

但是使用GRU单元格,您可以将dropout指定为构造函数中的参数:

model.add(GRU(units=512,
        return_sequences=True,
        dropout=0.5,
        input_shape=(None, features_size,)))
Run Code Online (Sandbox Code Playgroud)

有什么不同?一个比另一个好吗?

Keras的文档中, 它将其添加为单独的丢失层(请参阅"使用LSTM进行序列分类")

lstm keras dropout

10
推荐指数
1
解决办法
4024
查看次数