Respostas no Fórum

Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • em resposta a: Identificação de objetos errados nas imagens. #40985

    Certo então! Vamos lá.

    Estarei disponibilizando o Notebook do Colab (https://colab.research.google.com/drive/108JVbz_jtwZhVLzfI42GjVe4zqLRuH_K?usp=sharing).

    Vou resumir meu notebook para economizar tempo, utilizei 2 treinamentos, um para a identificação e segmentação de gordura, e o outro, para carne. Em cima disso, eu fiz uma classificação com base na porcentagem de gordura na carne, podendo ela ser ‘Select’, ‘Choice’ e ‘Prime’. OBS: tive um resultado pior com a gordura, pois ela não possui um formato específico, e é muito difícil segmentá-la no VIA, por isso os resultados nela foram mais imprecisos. Perguntei sobre a carne pois eu esperava ter um resultado mais satisfatório.

    Em relação ao dataset para a carne, foram separados 161 imagens no total, essas imagens possuem diferentes tamanhos. O mesmo vale para a gordura, porém com 76 imagens no total. Utilizei 150 épocas para a carne com apenas a última rede neural sendo treinada (layers = ‘heads’) e 300 épocas para a gordura com todas as camadas treinadas (layers = ‘all’). Vou anexar a configuração da rede neural aqui:

    class ConfigRede(Config):
    NAME = ‘Carne’
    IMAGES_PER_GPU = 3
    NUM_CLASSES = 1 + 1
    STEPS_PER_EPOCH = 100
    DETECTION_MIN_CONFIDENCE = 0.9
    USE_MINI_MASK=False
    VALIDATION_STEPS = 5
    config = ConfigRede()
    config.display()

    “”” Configurations: BACKBONE resnet101 BACKBONE_STRIDES [4, 8, 16, 32, 64] BATCH_SIZE 3 BBOX_STD_DEV [0.1 0.1 0.2 0.2] COMPUTE_BACKBONE_SHAPE None DETECTION_MAX_INSTANCES 100 DETECTION_MIN_CONFIDENCE 0.9 DETECTION_NMS_THRESHOLD 0.3 FPN_CLASSIF_FC_LAYERS_SIZE 1024 GPU_COUNT 1 GRADIENT_CLIP_NORM 5.0 IMAGES_PER_GPU 3 IMAGE_CHANNEL_COUNT 3 IMAGE_MAX_DIM 1024 IMAGE_META_SIZE 14 IMAGE_MIN_DIM 800 IMAGE_MIN_SCALE 0 IMAGE_RESIZE_MODE square IMAGE_SHAPE [1024 1024 3] LEARNING_MOMENTUM 0.9 LEARNING_RATE 0.001 LOSS_WEIGHTS {‘rpn_class_loss’: 1.0, ‘rpn_bbox_loss’: 1.0, ‘mrcnn_class_loss’: 1.0, ‘mrcnn_bbox_loss’: 1.0, ‘mrcnn_mask_loss’: 1.0} MASK_POOL_SIZE 14 MASK_SHAPE [28, 28] MAX_GT_INSTANCES 100 MEAN_PIXEL [123.7 116.8 103.9] MINI_MASK_SHAPE (56, 56) NAME Carne NUM_CLASSES 2 POOL_SIZE 7 POST_NMS_ROIS_INFERENCE 1000 POST_NMS_ROIS_TRAINING 2000 PRE_NMS_LIMIT 6000 ROI_POSITIVE_RATIO 0.33 RPN_ANCHOR_RATIOS [0.5, 1, 2] RPN_ANCHOR_SCALES (32, 64, 128, 256, 512) RPN_ANCHOR_STRIDE 1 RPN_BBOX_STD_DEV [0.1 0.1 0.2 0.2] RPN_NMS_THRESHOLD 0.7 RPN_TRAIN_ANCHORS_PER_IMAGE 256 STEPS_PER_EPOCH 100 TOP_DOWN_PYRAMID_SIZE 256 TRAIN_BN False TRAIN_ROIS_PER_IMAGE 200 USE_MINI_MASK False USE_RPN_ROIS True VALIDATION_STEPS 5 WEIGHT_DECAY 0.0001 “””

     

    em resposta a: AttributeError: LEARNING_RATE #40293

    Vale avisar que fiz uma pequena alteração no código para carregar o dataset:

    # Retorna a mascara e a array dos IDs das classes de cada instancia.
    # Como nesse exemplo temos uma classe apenas, retornamos uma array composta de 1s
    return mask.astype(bool), np.ones([mask.shape[-1]], dtype=np.int32)

    Em “return mask.astype(bool)” originalmente era “return mask.astype(np.bool)”, fiz isso por causa das atualizações do NumPy. Porém, não acredito que seja essa a causa do problema.

    em resposta a: AttributeError: LEARNING_RATE #40292

    Ao reiniciar o ambiente de execução, o mesmo problema acontece.

     

    Segue o link: https://colab.research.google.com/drive/1qgcs89rliHyDa_bjG2cTA48uDHcLr6hq?usp=sharing

    em resposta a: AttributeError: LEARNING_RATE #40276

    Agradeço pela resposta! Corrigi o erro, seguindo estritamente os códigos apresentados no link que me enviou. Acredito que o erro estava na configuração da rede neural, reparei que o nome do objeto estava como “baloon” ao invés de “balloon” , porém eu devo ter alterado em algum momento antes de continuar com o treinamento.

    Porém, agora outro problema está me ocorrendo. Ao treinar, após um tempo (2~5min) utilizando o dataset do balão, que foi disponibilizado em aula, ele “estoura” a memória RAM do sistema (mesmo utilizando a GPU do Colab), interrompendo o treinamento logo em seguida. Acredito que esta notificação do sistema é relevante:

    /usr/local/lib/python3.9/dist-packages/tensorflow/python/framework/indexed_slices.py:444: UserWarning: Converting sparse IndexedSlices(IndexedSlices(indices=Tensor(“training/SGD/gradients/gradients/roi_align_classifier/concat_grad/sub_3:0”, shape=(None,), dtype=int32), values=Tensor(“training/SGD/gradients/gradients/roi_align_classifier/concat_grad/GatherV2_11:0”, shape=(None, 7, 7, 256), dtype=float32), dense_shape=Tensor(“training/SGD/gradients/gradients/roi_align_classifier/concat_grad/Shape_3:0”, shape=(4,), dtype=int32))) to a dense Tensor of unknown shape. This may consume a large amount of memory. warnings.warn(

Visualizando 4 posts - 1 até 4 (de 4 do total)