Pull to refresh

Comments 34

Есть какие-то требования к телефону для работы с приложением? Мне google play говорит: «Приложение не совместимо ни с одним из ваших устройств». Основной телефон Xiaomi Redmi Note 3.

Попробовал. Уровень угадывания совершенно неприличный — для одной и той же собаки породы гуляют так, что я могу это написать в две строки с random.choice(). Можно даже без фотографии.

Я правильно понимаю, что собака не породистая? Я не кинолог, но судя по фотке :) Если так, то вероятности будут гулять — это нормально.
Собака из приюта. Вроде бы, немецкий шпиц, но никто не знает.
CNN выдает веса. Классификатор их классифицирует. И если сочетание весов сети незнакомо, будет не пойми что. Так что, все, что меньше 0.9X вероятности смело относим к «я не знаю».
Предлагаю обратную задачу :) Угадать, фотки каких пород были показаны, если выводы (неправильные) были сделаны:

1)
тибетский терьер 0,446979
шотландский терьер 0,196114
гигантский шнауцер 0,190018
керри блю терьер 0,110089
минишнауцер 0,018280
аффенпинчер 0,014331

2)
керри блю терьер 0,644562
гигантский шнауцер 0,289565
фландрский бувье 0,051159
миттельшнауцер 0,005855
минишнауцер 0,005740
шотландский терьер 0,002523

Не спорю, задачка не из простых, и породы во многом похожи. Но фото честные, чёткие, человеческий глаз моментально поймёт какая имено это порода, при условии что он хоть немного разбирается, конечно. Интересно оценить пороговые различия, при которых AI в принципе может справиться.
Можно попросить фотки? В приват, например. Потому, что если вероятность определения меньше 0.9Х, значит нейросеть вообще не знает этого зверя. Вероятно, микс.
Сейчас пришлю. В обоих случаях типичные представители: 1) русская болонка чёрного цвета — гигантский шнауцер, ага :) 2) русский чёрный терьер — минишнауцер, тоже прикольно :) А может и правда не знает таких пород.
OK, устроим ещё подлянку :) Тут и ракурсы не очень, и не порода вовсе — метис, пополам американский бульдог и питбультерьер. Тем не менее, близко:

что выдало






OK, кунхаунд тоже сгодится :) Но сенбернар?

Прекрасный пример того, как встречаются хороший тестер и ленивый программист.
Сеть, получив два изображения, выдает веса (вероятности), которые ничему реальному не соответствуют. По этой же причине не выйдет определить веса родителей в миксе. То есть, наверное, можно, но обучение должно быть другим.
А ленивый программист, потому, что я должен был сделать выделение отдельных собак и анализ выделенного участка изображения :)
Теперь насчет анализа головы собаки. Если вы посмотрите на обучающий набор, там только собаки целиком. Так что сеть с головой работать вроде и не умеет. Опять же, хороший программист сделал бы прогу, отрезающую собаке голову, и обучил бы сеть, в том числе, на головах…
Не-не, про микс речи нет. Это ж провокация :) Ну и с учётом того, что практического смысла в программе ноль…

Более того, многие человеческие эксперты как раз согласны с оценкой породной принадлежности Варьки :) Тут программа сработала прекрасно. Особенно если посмотреть на обучающие образцы.
Ну почему ноль смысла. Я теперь знаю породы всех моих коллег по работе.
Породы коллег по работе можно узнать проще: вопросом «что написано в родухе» :)
Вот список пород, которые должна узнавать сеть.
Похоже, ничего русского там нет :(

affenpinscher
afghan_hound
african_hunting_dog
airedale
american_staffordshire_terrier
appenzeller
australian_terrier
basenji
basset
beagle
bedlington_terrier
bernese_mountain_dog
black-and-tan_coonhound
blenheim_spaniel
bloodhound
bluetick
border_collie
border_terrier
borzoi
boston_bull
bouvier_des_flandres
boxer
brabancon_griffon
briard
brittany_spaniel
bull_mastiff
cairn
cardigan
chesapeake_bay_retriever
chihuahua
chow
clumber
cocker_spaniel
collie
curly-coated_retriever
dandie_dinmont
dhole
dingo
doberman
english_foxhound
english_setter
english_springer
entlebucher
eskimo_dog
flat-coated_retriever
french_bulldog
german_shepherd
german_short-haired_pointer
giant_schnauzer
golden_retriever
gordon_setter
great_dane
great_pyrenees
greater_swiss_mountain_dog
groenendael
ibizan_hound
irish_setter
irish_terrier
irish_water_spaniel
irish_wolfhound
italian_greyhound
japanese_spaniel
keeshond
kelpie
kerry_blue_terrier
komondor
kuvasz
labrador_retriever
lakeland_terrier
leonberg
lhasa
malamute
malinois
maltese_dog
mexican_hairless
miniature_pinscher
miniature_poodle
miniature_schnauzer
newfoundland
norfolk_terrier
norwegian_elkhound
norwich_terrier
old_english_sheepdog
otterhound
papillon
pekinese
pembroke
pomeranian
pug
redbone
rhodesian_ridgeback
rottweiler
saint_bernard
saluki
samoyed
schipperke
scotch_terrier
scottish_deerhound
sealyham_terrier
shetland_sheepdog
shih-tzu
siberian_husky
silky_terrier
soft-coated_wheaten_terrier
staffordshire_bullterrier
standard_poodle
standard_schnauzer
sussex_spaniel
tibetan_mastiff
tibetan_terrier
toy_poodle
toy_terrier
vizsla
walker_hound
weimaraner
welsh_springer_spaniel
west_highland_white_terrier
whippet
wire-haired_fox_terrier
yorkshire_terrier
Похоже, ничего русского там нет :(

Из нашенского как минимум самоеды есть.
Я имел в виду, чтобы название содержало «russian» :)
Если на собаках будет работать.
Можно попробовать определять породу людей…
Гугл на этом уже обломался :) Опознал горилл… получил судебный иск. Хотя, если бы вы видели то фото…
Только вчера осваивал colab сам :). Замечу один нюанс, данные с google drive лучше скопировать на саму виртуальную машину. Так как при работе с данными находящимися на google drive обучение будет происходить очень медленно из низкой скорости получения данных с google drive (прошу прощения за тавтологию).
Спасибо.
Можете привести пример?
!cp -r '/content/drive/My Drive/cats_vs_dogs/' './' 


В моем случае (датасет кошечки против собак) было так. До копирования данных у меня на одну эпоху тратилось несколько минут (на моем ноуте эпоха занимала около 26 секунд), после копирования на эпоху стало тратиться около 10 секунд
Спасибо. Кстати, я заметил, что на Colab эпоха может занимать от секунды до минуты — перестартуешь блок Jupiter — и все меняется.
Я когда увидел жуткие тормоза очень удивился. Первым делом рестартовал блок, не помогло. Потом рестартовал само ядро. Не помогло. В итоге полез гуглить и на первой же ссылке понял, что я не один кто наступил на сей грабли.

Не очень понимаю зачем было постить закомментированный код. Лишняя информация сказывается на восприятии

Этот код нужно раскомментировать при определенных условиях. Например:
useNNofType_1()
#useNNofType_2()
В зависимости от того, какую сеть вы хотите получить (а я их там штук 5 привел), вы меняете комментарий.
Все сложно, пока нашел что код ниже должен быть в одной строчке.
Может это и так должно быть понятно

   from keras.applications.inception_v3 import preprocess_input as inception_v3_preprocessor
Only those users with full accounts are able to leave comments. Log in, please.