我目前正在创建一个卷积神经网络,其主要任务是将输入信息分类到不同的类别中。这些类别是预测频率的精确值。
这是我目前构建的内容:
def evaluate_model(X_train, Y_train, X_test, Y_test,n_filters): verbose, epochs, batch_size = 1, 10, 3 n_timesteps, n_features = X_train.shape[1], X_train.shape[2] model = Sequential() model.add(Conv1D(filters=n_filters, kernel_size=8, activation='relu', input_shape=(n_timesteps,n_features))) model.add(Conv1D(filters=n_filters, kernel_size=8, activation='relu')) model.add(Dropout(0.5)) model.add(MaxPooling1D(pool_size=2)) model.add(Flatten()) model.add(Dense(100, activation='relu')) model.add(Dense(50, activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) print(model.summary()) # fit network history=model.fit(X_train, Y_train, epochs=epochs, batch_size=batch_size, verbose=verbose) # evaluate model _, accuracy = model.evaluate(X_test, Y_test, batch_size=batch_size, verbose=1) return accuracy, modelpredict=model.predict(amplitude_t)print(predict)
我试图预测我创建的一些新信号的值,这运行得很完美。尽管我的输出是一个概率输出,我希望将其转换回实际的频率值。有没有办法做到这一点?
回答:
你需要做的是:
predicted_labels = np.argmax(predict, 0)
有关进一步的说明,请参考此回答: