小编new*_*e99的帖子

类型错误:“function”和“str”的实例之间不支持“<”

我已经使用自定义的 f1 分数指标构建了一个顺序模型。我在我的模型编译过程中传递了它,然后以*.hdf5格式保存它。每当我使用custom_objects属性加载模型以进行测试时

model = load_model('app/model/test_model.hdf5', custom_objects={'f1':f1})

Keras 抛出以下错误

TypeError: '<' not supported between instances of 'function' and 'str'
Run Code Online (Sandbox Code Playgroud)

注意:如果我在编译期间不包含 f1 指标,则不会显示任何错误,并且测试过程运行良好。

训练方法

from metrics import f1

...

# GRU with glove embeddings and two dense layers
model = Sequential()
model.add(Embedding(len(word_index) + 1,
                    100,
                    weights=[embedding_matrix],
                    input_length=max_len,
                    trainable=False))
model.add(SpatialDropout1D(0.3))
model.add(GRU(100, dropout=0.3, recurrent_dropout=0.3, return_sequences=True))
model.add(GRU(100, dropout=0.3, recurrent_dropout=0.3))

model.add(Dense(1024, activation='relu'))
#model.add(Dropout(0.8))

model.add(Dense(1024, activation='relu'))
#model.add(Dropout(0.8))

model.add(Dense(2))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['acc', f1])

# Fit the model with early stopping callback
earlystop …
Run Code Online (Sandbox Code Playgroud)

python model keras

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

Keras 中 Conv1D 层的输出大小

我试图理解应用于多个批次(本例中为 3 个)2D 输入形状 (6x6) 的 1D 卷积层的输出。

下面代码的输出是(4, 10, 32)。对于前两个指数来说,这个答案非常简单。

  • (4) 我们插入N个例子,我们得到N个例子。
  • (8) 在 (10, 128) * (3, 1) 之间进行卷积时,由于默认填充设置为“有效”,因此输入空间中的两个值不会映射到最终结果,这就是为什么我们得到 8。
  • 我不明白为什么该层输出 32 作为最终索引。filtersConv1D 层中参数的实际作用是什么?对于我来说,该层如何操作最终输出(如下面的短语所述)并不是很直观。

根据文档,这应该是输出形状

输出形状:3+D 张量,形状:batch_shape + (new_steps,filters) 步骤值可能由于填充或步幅而发生变化。

input_shape = (4, 10, 128)
x = tf.random.normal(input_shape)
y = tf.keras.layers.Conv1D(
    32, 3, input_shape=input_shape[1:])(x)
print(y.shape) # (4, 10, 32)
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow

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

标签 统计

keras ×2

python ×2

model ×1

tensorflow ×1