YOLOv3 video recognition machine learning RTX2060

0

hej!
Pierwszy post, więc na wstępie chciałbym się przywitać; )
Mam projekt, którego celem jest detekcja obiektów na video (docelowo live, na razie na zadanym materiale offline).
Padło na algorytm YOLOv3, który robi robotę - przy okazji postaram się w miarę możliwości podzielić wynikami naszej pracy.
Do tej pory do nauki i przetwarzania obrazu wykorzystywaliśmy GTX 1070 i wszystko ładnie śmigało, natomiast w związku z przyrostem zdjęć do nauki postanowiłem udostępnić swój zestaw obliczeniowy oparty o trzy RTX'y_2060.

I od tygodnia nauka nam stoi, ponieważ RTX'y nie chcą pracować.. niestety ja jestem tylko analitykiem w projekcie, a deweloperzy to młode chłopaki 22-24 lata i mam wrażenie, że wstydzą się zapytać na forach (według nich miejsca dla starych ludzi;) więc na początek podam setup sprzętu i error, który nam wychodzi:
-płyta główna: H110 Pro BTC+
-CPU: i3-6100 obsluguje avx/avx2
-dysk: gigabyte ssd 120gb
-RTX 2060 x3

Tutaj natomiast log erroru, który nam wyskakuje:
2019-10-01 1656.477360: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1053] Created TensorFlow device (/job:localhost/replica:0/task:0/device1 with 4656 MB memory) -> physical GPU (device: 1, name: GeForce RTX 2060, pci bus id: 000000.0, compute capability: 7.5)
Nasz_projekt\people_5_7k_reannotated.h5 model, anchors, and classes loaded.
2019-10-01 1628.860791: E T:\src\github\tensorflow\tensorflow\stream_executor\cuda\cuda_dnn.cc:455] could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED
2019-10-01 1628.861006: F T:\src\github\tensorflow\tensorflow\core\kernels\conv_ops.cc:713] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo<T>(), &algorithms)

Brakuje nam już pomysłów..
Pozdrawiam!

2
  • Masz prawidłowo zainstalowaną CUDA? W której wersji?
  • Masz prawidłowo zainstalowane cuDNN?
  • W jakiej wersji masz TensorFlow?
  • Jaki OS?
  • Masz scieżkę do CUDA w PATH?
  • Czy nie używasz czegoś co zajmuje dostęp do GPU w innym procesie? Sprawdź nvidia-smi.

Twój problem jest dość specyficzny, polecam szukać bardziej odpowiedzi na forum związanym z TensorFlow. A tym młodym chłopakom, co to uważają że fora są dla "starych" to bym dał prztyczka w nos. Oni mają znaleźć rozwiązanie problemu, więc niech się przełamią. Nikt nie każe im się z tymi "starymi" socjalizować.

0
  • CUDA v9
  • tak
  • 1.8
  • Win10, na razie staramy sie unikac ubuntu
  • tak
  • nie
    PS. z tymi dinozałrami to pół-serio.. nie mniej, nauczanie mi stoi a deadline sie zbliża; )
0

Czy sterowniki do kart aktualne? Jesli tak to albo za malo ramu na karcie (za duzy batch) albo alokacja pamieci jest zle ustawiona w TF'ie (nie powinno dotyczyc wersji 2.0)

Edit -> miałem kiedyś podobny problem wystarczylo pobawic sie z tf.ConfigProto()

0

@koniezcko:

It has to do with the memory fraction available to load GPU resources to create cudnn handle, also known as per_process_gpu_memory_fraction.
Reducing this memory fraction by yourself will solve the error.

sess_config = tf.ConfigProto(gpu_options =
tf.GPUOptions(per_process_gpu_memory_fraction=0.7),
allow_soft_placement = True)

with tf.Session(config=sess_config) as sess:
sess.run([whatever])

Use as small fraction as could fit in your memory. (In the code, I use 0.7, you can start with 0.3 or even smaller, then increase until you get the same error, that's your limit.)
Pass it to your tf.Session() or tf.train.MonitoredTrainingSession() or Supervisor's sv.managed_session() as config.

This should allow your GPU create a cudnn handle for your TensorFlow code.

Ostatni komentarz stąd - https://github.com/tensorflow/tensorflow/issues/6698

Ogólnie ważne jest to ile masz RAMu. Bezpiecznie jest mieć 2x tyle RAMu co VRAMu. Przy twoim setupie mam też wątpliwości czy i3 da radę obsłużyć wszystkie 3 karty bez opóźnień.

1 użytkowników online, w tym zalogowanych: 0, gości: 1