NHibernate, отображающийся с иерархией классов, базовый класс которой абстрактен и различитель, не является строкой

Вам необходимо преобразовать Y в матрицу двоичного класса, используя to_categorical ( документы ).

import sklearn.datasets
X,Y = sklearn.datasets.make_classification(n_samples=100, n_features=6, n_redundant=0,n_informative=6, n_classes=20)

import numpy as np
from keras import Sequential
from keras.layers import Dense
from keras.utils import to_categorical
from keras import backend as K
K.clear_session()

model = Sequential()
model.add(Dense(50,input_dim=X.shape[1],activation='softmax'))
model.add(Dense(20,activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='rmsprop', 
              metrics=['accuracy'])
model.summary()
model.fit(X, to_categorical(Y), epochs=1000, verbose=1) # <---

Также вы можете использовать sklearn для этого тоже.

9
задан David Hall 29 November 2008 в 04:30
поделиться

1 ответ

Я нашел обходное решение, но это так походит на патч... Я добавил следующее к отображающемуся файлу:

SetAttribute("discriminator-value", "-1");

Это, кажется, дает FNH команду не использовать строку (я думаю, что это использует имя класса) для абстрактного базового класса. Чтобы заставить его работать с этим-1 значением, я также изменил свой тип различителя от байта до sbyte.

Править: Я пропустил это: это - второй параметр к DiscriminateSubClassesOnColumn, который берет значение по умолчанию. Таким образом, корректный ответ на мой вопрос:

DiscriminateSubClassesOnColumn<sbyte>("Type", (sbyte)-1)
13
ответ дан 4 December 2019 в 15:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: