FEDOT icon indicating copy to clipboard operation
FEDOT copied to clipboard

Make logging output not so scary for end-user

Open gkirgizov opened this issue 2 years ago • 2 comments

During Graph verification (GraphVerifier) & Pipeline evaluation (PipelineObjectiveEvaluate with EvaluationDispatcher) usually happen a lot of errors. By default these errors are output to the logger and to the console. They bloat the console and create the impression that something goes terribly wrong. Fedot shouldn't create such impression and shouldn't by default output to the user information that's unhelpful,

I propose that

  • console and log file must have different and configurable logging levels
  • by default console should output only informative messages about optimization process
  • all messages should by default go to the log file
  • in tests console output must output all verification & evaluation errors

Regarding message log levels:

  • critical evaluation errors (which could lead to the failure of optimisation) should be errors
  • noncritical pipeline eval errors (from which optimiser recovers) should be warnings or debug-level messages (depending on severity)
  • verification errors seem to be expected errors and possibly should be debug-level messages

gkirgizov avatar Aug 01 '22 09:08 gkirgizov

Уровни логгинга для сообщений обсуждаемы

gkirgizov avatar Aug 01 '22 09:08 gkirgizov

Пример логов, с большими графами из NAS. 2022-08-24 06:03:14,069 - GraphVerifier - Graph verification failed with error <Invalid graph configuration: Graph has wrong skip connections> for rule=<function has_no_flatten_skip at 0x7f3b0e4254c0> on graph=((((((((((((((((/n_conv2d_{'layer_type': 'conv2d', 'activation': 'tanh', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 64, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'max_pool2d', 'n_jobs': 1, 'drop': 0.2};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'linear', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 64, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'max_pool2d', 'n_jobs': 1, 'drop': 0.5};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'linear', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 64, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'max_pool2d', 'n_jobs': 1, 'momentum': 0.4406813782534731, 'epsilon': 0.309761865074756};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'softplus', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 32, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'average_pool2d', 'n_jobs': 1};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'softmax', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 32, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'average_pool2d', 'n_jobs': 1, 'drop': 0.1};;(((/n_conv2d_{'layer_type': 'conv2d', 'activation': 'tanh', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 64, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'max_pool2d', 'n_jobs': 1, 'drop': 0.2};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'linear', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 64, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'max_pool2d', 'n_jobs': 1, 'drop': 0.5};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'linear', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 64, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'max_pool2d', 'n_jobs': 1, 'momentum': 0.4406813782534731, 'epsilon': 0.309761865074756};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'softplus', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 32, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'average_pool2d', 'n_jobs': 1};;/n_conv2d_{'layer_type': 'conv2d', 'activation': 'tanh', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 64, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'max_pool2d', 'n_jobs': 1, 'drop': 0.2};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'elu', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 32, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'average_pool2d', 'n_jobs': 1, 'momentum': 0.9734382274129786, 'epsilon': 0.23573675617687395};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'softplus', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 64, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'max_pool2d', 'n_jobs': 1, 'momentum': 0.04621794831314552, 'epsilon': 0.797442711928691, 'drop': 0.3};;(/n_conv2d_{'layer_type': 'conv2d', 'activation': 'tanh', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 64, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'max_pool2d', 'n_jobs': 1, 'drop': 0.2};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'linear', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 64, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'max_pool2d', 'n_jobs': 1, 'drop': 0.5};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'linear', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 64, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'max_pool2d', 'n_jobs': 1};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'linear', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 32, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'average_pool2d', 'n_jobs': 1, 'momentum': 0.03546964032188504, 'epsilon': 0.060851756668864554, 'drop': 0.1};;(((/n_conv2d_{'layer_type': 'conv2d', 'activation': 'tanh', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 64, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'max_pool2d', 'n_jobs': 1, 'drop': 0.2};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'linear', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 64, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'max_pool2d', 'n_jobs': 1, 'drop': 0.5};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'linear', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 64, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'max_pool2d', 'n_jobs': 1, 'momentum': 0.4406813782534731, 'epsilon': 0.309761865074756};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'softplus', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 32, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'average_pool2d', 'n_jobs': 1};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'elu', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 32, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'max_pool2d', 'n_jobs': 1, 'momentum': 0.6867713765586763, 'epsilon': 0.8456227719182262, 'drop': 0.4};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'relu', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 32, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'average_pool2d', 'n_jobs': 1, 'drop': 0.5};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'tanh', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 32, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'average_pool2d', 'n_jobs': 1, 'momentum': 0.41113993431584583, 'epsilon': 0.6850324313658979};)/n_conv2d_{'layer_type': 'conv2d', 'activation': 'relu', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 64, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'max_pool2d', 'n_jobs': 1, 'momentum': 0.4225978111457399, 'epsilon': 0.3551773135885514, 'drop': 0.1};)/n_flatten_{'n_jobs': 1};;/n_conv2d_{'layer_type': 'conv2d', 'activation': 'tanh', 'kernel_size': 3, 'conv_strides': 1, 'num_of_filters': 64, 'pool_size': 2, 'pool_strides': 2, 'pool_type': 'max_pool2d', 'n_jobs': 1, 'drop': 0.2};)/n_dense_{'layer_type': 'dense', 'neurons': 64, 'activation': 'selu', 'n_jobs': 1, 'momentum': 0.40192372825721256, 'epsilon': 0.6889082362934618, 'drop': 0.2};)/n_dense_{'layer_type': 'dense', 'neurons': 64, 'activation': 'sigmoid', 'n_jobs': 1};)/n_dense_{'layer_type': 'dense', 'neurons': 32, 'activation': 'elu', 'n_jobs': 1, 'momentum': 0.9103397840499711, 'epsilon': 0.6587849510327589}.

staeros avatar Aug 24 '22 13:08 staeros