Как изменить форму слоя CNN, чтобы снова подать его на CNN - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь получить выходные данные из слоев CNN, а затем снова передать эти выходные данные в модель CNN, но я не могу изменить выходные данные, которые я получаю, чтобы передать их в модель.

Я пробовал несколько изменить формутакие методы, как np.reshape(x), но я получаю размеры и список вопросов. Мой код выглядит следующим образом:

Y = traindata.iloc[:,0]
C = testdata.iloc[:,0]
T = testdata.iloc[:,1:42]
scaler = Normalizer().fit(X)
trainX = scaler.transform(X)
scaler = Normalizer().fit(T)
testT = scaler.transform(T)
y_train = np.array(Y)
y_test = np.array(C)
X_train = np.reshape(trainX, (trainX.shape[0],trainX.shape[1],1))
X_test = np.reshape(testT, (testT.shape[0],testT.shape[1],1))

cnn = Sequential()
cnn.add(Convolution1D(64, 3, border_mode="same",activation="relu",input_shape=(41, 1)))
cnn.add(MaxPooling1D(pool_length=(2)))
cnn.add(Flatten())
cnn.add(Dense(1, activation="relu"))
cnn.add(Dropout(0.5))
cnn.add(Dense(1, activation="sigmoid"))

trainX, testX, trainy, testy = train_test_split(X_train, y_train, test_size=0.2, random_state=2)

cnn.compile(loss="binary_crossentropy", optimizer="adam",metrics=['accuracy'])

# train
checkpointer = callbacks.ModelCheckpoint(filepath="/content/checkpoint1.hdf5", verbose=1, save_best_only=True, monitor='val_acc',mode='max')
csv_logger = CSVLogger('/content/cnntrainanalysis1.csv',separator=',', append=False)
history=cnn.fit(trainX, trainy, nb_epoch=5,validation_data=(testX, testy),callbacks=[checkpointer,csv_logger])
csv_logger1 = CSVLogger('/content/cnntrainanalysis2.csv',separator=',', append=False)
cnn.save("/content/cnn_model.hdf5")

layer_outputs = [layer.output for layer in cnn.layers]
activation_model = Model(inputs=cnn.input, outputs=layer_outputs)
activations = activation_model.predict(trainX)

Я хочу снова передать активации из activations = activation_model.predict(trainX) в мою модель cnn. Пожалуйста, скажите мне, как я могу это сделать? вывод print(activations) выглядит следующим образом:

         0.01763991, 0.05897206],
        [0.0343827 , 0.        , 0.        , ..., 0.12232751,
         0.        , 0.13022624],
        [0.01086476, 0.        , 0.        , ..., 0.18884507,
         0.02148425, 0.04976999],
        ...,
        [0.01638399, 0.        , 0.        , ..., 0.20785347,
         0.        , 0.03860399],
        [0.        , 0.        , 0.        , ..., 0.21488364,
         0.        , 0.10750664],
        [0.01316635, 0.        , 0.        , ..., 0.19352476,
         0.        , 0.06698873]]], dtype=float32), array([[0.00233197, 0.        , 0.00843151, ..., 0.19352476, 0.        ,
        0.06698873]], dtype=float32), array([[0.]], dtype=float32), array([[0.]], dtype=float32), array([[0.80365914]], dtype=float32)] ```

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...