* Albatta, Mashinani o'rganishni o'rganish uchun. Sevimli xotinining biroz norozi nigohi ostida.
Tinder kabi orqa miya reflekslari darajasiga oddiy dastur yo'q. Uni ishlatish uchun faqat bir barmoq bilan surish va bir nechta neyronlar kerak bo'ladi va sizga eng yoqadigan qizlar yoki erkaklarni tanlash mumkin. Juftlikni tanlashda qo'pol kuchning ideal tarzda amalga oshirilishi.
Men bu yangi grafik kartada mashinani o'rganishni biroz his qilishning yaxshi usuli bo'lishiga qaror qildim. Faqat xotinimga menga yangi semiz ayol kerak emasligini tushuntirish qoladi va men shunchaki neyron tarmoqlarni o'rgatyapman.
Tanishuv tarmoqlarida qanday muammo bor?
Bunday manba bor edi - Eshli Medison. Aniqrog‘i, “Umr qisqa. Oshiq bo'ling." Asosiy tomoshabin - bu yon tomonda ish qidirayotgan turmush qurgan erkaklar. Monetizatsiya ham qiziqarli - standart "yoqtirish va yozish uchun ballarni sarflash" dan tashqari, ular foydalanuvchi hisobini izsiz o'chirish uchun 19 dollar so'rashdi.
2015 yilda sayt tabiiy ravishda sizib chiqdi va 60 Gb shaxsiy ma'lumotlar jamoat mulkiga sizib chiqdi. Ko'plab vayron qilingan oilalardan tashqari, bu oqish tahlilchilarga juda ko'p qiziqarli ma'lumotlarni taqdim etdi. Men har doim tanishuv saytlarida ko'proq erkaklar borligiga shubha qilardim, ammo bu holda bu juda qiziq bo'lib chiqdi. Jurnalist Annali Nyuitz
Erkak hisoblariga nisbatan bunday ustunlik nafaqat ushbu manba uchun, balki boshqa ko'plab tanishuv saytlari uchun ham xosdir. Ishonchim komilki, ko'pchilik bu shubhasiz adolatsiz vaziyatga duch keldi, qachonki siz tanishishni diqqat bilan rejalashtirishingiz kerak, lekin qiz faqat ro'yxatdan o'tishi kerak. Keling, ushbu muxlislar olomonining sifatini bir chetga surib qo'yaylik, lekin talab va taklif muvozanati qizlar foydasiga aniq siljishini inkor etib bo'lmaydi.
Tinder xususiyati
Gender munosabatlaridagi ideal qo'pol kuch
Ushbu platformaning asosiy xususiyati - har bir tanish uchun arzon narx. Ikki marta surishning tasodifiyligi etarli va siz allaqachon potentsial qiziqarli odam bilan muloqot qilyapsiz. Muammo shundaki, bir xil gender nomutanosibligi qizlarning ko'pchiligi kuniga o'nlab o'yinlarga ega bo'lishiga olib keladi. Bu shuni anglatadiki, ular boshqa nomzodlar orasida sizga e'tibor berishga vaqtlari bo'lmaydi.
Ko'rinib turibdiki, platforma suzish kiyimidagi fotosuratga yoki zamonaviy rangli mashinani haydashga bir yarim soniya qarashda odamning chuqur ichki dunyosini baholash uchun kam imkoniyatni nazarda tutadi. Shuning uchun, agar siz fotosuratlaringizda shunchaki ilohiy ko'rinmasangiz, sizning imkoniyatingizni oshirishdan boshqa ilojingiz yo'q.
Ma'lumotlarni yig'ish
Avvalo, normal aniqlik uchun sizga juda ko'p ma'lumotlar kerak. Mashinani o'rganishga duch kelgan har bir kishi to'g'ri to'plangan va etiketlangan ma'lumotlar to'plamini yaratish qanchalik qiyinligini biladi. Nazariy jihatdan, har qanday shunga o'xshash manba ma'lumotlar manbai sifatida mos keladi, xoh u Instagram yoki boshqa ijtimoiy tarmoqlar. Ammo kelajakda tarmoq ishlaydigan namunalar bo'yicha mashq qilish yaxshidir.
Keling, omborni asos qilib olaylik
from skimage.io import imread, imsave, imshow, show
import matplotlib.pyplot as plt
import pynder
from helpers import get_access_token, get_login_credentials
from io_helper import save_image
email, password, FBID = get_login_credentials()
FBTOKEN = get_access_token(email, password)
session = pynder.Session(facebook_token=FBTOKEN)
while True:
users = session.nearby_users()
for user in users:
photos = user.get_photos()
print("Fetched user photos..")
for photo in photos:
print(photo)
image = imread(photo)
imshow(image)
show()
input_string = "Write 1 to like. Write 2 to dislike."
ans = str(input(input_string)).lower()
if ans == "1":
save_image(image, photo, True)
else:
save_image(image, photo, False)
Bu sizga ikkita tugma yordamida ma'lumotlar to'plamini imkon qadar tezroq belgilash imkonini beradi. Asosiy muammo shundaki, werkzeug kutubxonasi orqaga qarab muvofiqlikni buzgan va uni pasaytirishga majbur bo'ladi. Aks holda, bu xatoni chiqaradi.
Traceback (most recent call last):
File "img_scrape.py", line 4, in <module>
from helpers import get_access_token, get_login_credentials
File "/home/someone/tmp/TinderAutomation/helpers.py", line 1, in <module>
import robobrowser
File "/home/someone/tmp/TinderAutomation/venv/lib/python3.6/site-packages/robobrowser/__init__.py", line 3, in <module>
from .browser import RoboBrowser
File "/home/someone/tmp/TinderAutomation/venv/lib/python3.6/site-packages/robobrowser/browser.py", line 8, in <module>
from werkzeug import cached_property
ImportError: cannot import name 'cached_property'
Shuning uchun talablar.txt da Werkzeug==0.16.1 yozish kerak. Keyin u uchib ketadi.
Ikkinchi muammo - bu tokenni olish. Repozitariydan standart usul men uchun ishlamadi, lekin men uni ishlab chiquvchi konsolidan olishga muvaffaq bo'ldim. Buning uchun quyidagi manzilga o'ting
Ma'lumotlar to'plamiga qo'yiladigan talablar
Mashinani o'rganish ma'lumotlar to'plami uchun bir nechta asosiy talablar mavjud:
- Adekvatlik
- Bir xillik
- Varete
Bunday holda, etarli modelni yaratish uchun kamida 10000 XNUMX ta fotosurat kerak bo'ladi. Ha, bu juda ko'p. Aynan shuning uchun xizmatlar yoqadi
Xilma-xillik bilan bog'liq hech qanday muammo yo'q, barcha fotosuratlar turli burchak va yorug'lik bilan taqdim etiladi. Ko'zoynak, liboslar, mayo va chang'i kostyumlarida. Ma'lumotlar to'plamining bir xilligi bilan bog'liq muammo paydo bo'lishi mumkin. Ideal holda, namunamizni belgilaganimizda, u taxminan teng qismlardan iborat bo'lishi kerak. Agar siz "qiyshiq" ma'lumotlar to'plamiga ega bo'lsangiz, uni boshqa manbalardan olingan fotosuratlar bilan suyultirishingiz kerak bo'ladi. Siz yanada jozibali narsalarni qo'shishingiz kerak bo'ladi yoki aksincha, siz ularni belgilash natijasiga qarab aniqlaysiz. Menda 60% atrofida chiroyli narsa bor. Yo men unchalik tanlab olmayman, yoki men shunchaki omadliman va atrofda juda chiroyli qizlar bor.
Ular orasida juda ko'p botlar bor degan gipotezani ham rad etmayman. Biz boshqa botlarni yoqtiradigan botni tayyorlaymiz. Bunda qandaydir ironiya bor.
Ma'lumotni qayta ishlash
Bizda bir nechta teglangan fotosuratlar bor, lekin ular juda aralash. Kunduzgi, tungi, orqadan va boshqalar. Afsuski, fotosuratlardan teskari burchakdan o'rgatish unchalik samarali bo'lmasligini tushunaman, chunki namuna juda notekis bo'ladi. Shuning uchun, eng yaxshi variant yuzlarni "yoqimlilik" belgisi sifatida ishlatishdir. Shunga qaramay, biz uchun, boshqa primatlar kabi, bu asosiy parametrdir.
Shuning uchun, keling, foydalanaylik
Bu qo'llanmada batafsil tavsiflangan
Keyingi bosqichda, namunada faqat yuzlar bo'lgandan so'ng, rangni olib tashlash mantiqan. Aslida, siz Pandoraning go'zal ko'k dengizi yoki yashil terili go'zalligi o'rtasida tanlov qilishingiz shart emas.
Hue odamlarida terining rangi jozibadorlik reytingiga sezilarli hissa qo'shmaydi.
Shuning uchun, neyron tarmog'ining ishini soddalashtirish va faqat kulrang rangni qoldirishga arziydi.
Model qurish
Darhol aytmoqchimanki, yaxshi video karta va CUDA bo'lmasa, siz etarli vaqt ichida o'qitilgan modelni olmaysiz. Shuning uchun, darhol ixtisoslashgan bulutlarda yoki python-CUDA-dan foydalanib hisob-kitoblarni maqsad qiling.
Men ombor muallifidan asosiy uch qatlamli misolni oldim va ajablanarlisi shundaki, u taxminan 72% aniqlikni ko'rsatdi, bu juda yaxshi natija.
model = Sequential()
model.add(Convolution2D(32, 3, 3, activation='relu', input_shape=(img_size, img_size, 3)))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Convolution2D(32, 3, 3, activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Convolution2D(64, 3, 3, activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(2, activation='softmax'))
adam = optimizers.SGD(lr=1e-4, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
optimizer= adam,
metrics=['accuracy'])
Agar yaxshi namuna bo'lsa, unda ishlaydigan modelni olish etarli bo'lishi mumkin.
Keling, botni ishga tushiramiz
G'oyani tezda sinab ko'rish uchun tayyor variant uchun ombor muallifiga rahmat. Aslida, u asosiy versiyada juda yaxshi ishlaydi va, qoida tariqasida, bizda ishga tushirilishi mumkin
Natijalar
Men juda yoqimliman deb o'ylayman. Men esa boy ichki dunyoga egaman. Men bir soat ichida 13 ta gugurt oldim. Bundan tashqari, bir necha marta qizlar birinchi bo'lib yozishgan.
Natijada, biz juda yaxshi suhbatlar bilan yakunlandik, men u erda men faqat mashinani o'rganish va ma'lumotlarni etiketlash bilan o'ynash uchun kelganimni aytdim. Qizlardan biri juda qiziqdi, chunki u o'zi ishlab chiqaruvchi. U oxir-oqibat Habré-da ushbu postni o'qiydi degan kuchli tuyg'u bor. Men umid qilamanki, Oksana mening anonimligimni saqlab qoladi. 🙂
*panjasini silkitib, salom deydi
Masalaning axloqiy tomoni haqida bir oz
Rostini aytsam, men erkaklar va qizlar o'rtasidagi munosabatlarni robotlashtirish g'oyasini yoqtirmayman. Ko'ylagini yolg'iz turgan sovuq notanish odamning yelkasiga tashlashda juda to'g'ri narsa bor. Yoki yozgi kafeda go'zal qizga yaqinlashing va birga qahva iching. Allaqachon monitorlar ortidan chiqing.
Yoz hamma yoqda. Tanishish vaqti keldi.
Manba: www.habr.com