* Protams, tikai maŔīnmÄcÄ«bas apguves labad. Zem viÅa mīļotÄs sievas nedaudz neapmierinÄtÄ skatiena.
IespÄjams, ka nav tik vienkÄrÅ”a pielietojuma mugurkaula refleksu lÄ«menim kÄ Tinder. Lai to izmantotu, jums ir nepiecieÅ”ams tikai viens pirksts, lai pÄrvilktu, un daži neironi, lai izvÄlÄtos meitenes vai vÄ«rieÅ”us, kas jums patÄ«k vislabÄk. IdeÄla brutÄla spÄka Ä«stenoÅ”ana pÄru atlasÄ.
Es nolÄmu, ka tas bÅ«tu labs veids, kÄ nedaudz iejusties maŔīnmÄcÄ«bÄ jaunÄ grafikas kartÄ. Atliek tikai paskaidrot sievai, ka man nav vajadzÄ«ga jauna resnÄka sieviete, un es tikai trenÄju neironu tÄ«klus.
KÄda ir iepazÄ«Å”anÄs tÄ«klu problÄma?
Bija tÄds resurss ā EÅ”lija Medisone. KonkrÄts, ar saukli āDzÄ«ve ir Ä«sa. Ir romÄns." GalvenÄ auditorija ir precÄti vÄ«rieÅ”i, kuri meklÄ romÄnu malÄ. MonetizÄcija ir arÄ« jautra ā papildus standarta ātÄrÄt punktus, lai atzÄ«mÄtu patÄ«k un rakstÄ«tuā, viÅi prasÄ«ja 19 $, lai izdzÄstu lietotÄja kontu bez pÄdÄm.
2015. gadÄ vietne dabiski noplÅ«da un 60 GB personas datu noplÅ«da publiskajÄ domÄnÄ. Papildus daudzÄm iznÄ«cinÄtajÄm Ä£imenÄm Ŕī noplÅ«de sniedza analÄ«tiÄ·iem daudz interesantas informÄcijas. Man vienmÄr bija aizdomas, ka iepazÄ«Å”anÄs portÄlos ir daudz vairÄk vÄ«rieÅ”u, bet Å”ajÄ gadÄ«jumÄ tas izrÄdÄ«jÄs diezgan interesanti. ŽurnÄliste AnnalÄ« Å
Å«ta
Å Äds vÄ«rieÅ”u kontu pÄrsvars ir raksturÄ«gs ne tikai Å”im resursam, bet arÄ« lielÄkajai daļai citu iepazÄ«Å”anÄs vietÅu. Esmu pÄrliecinÄts, ka daudzi ir saskÄruÅ”ies ar Å”o neapÅ”aubÄmi negodÄ«go situÄciju, kad rÅ«pÄ«gi jÄplÄno iepazÄ«Å”anÄs, bet meitenei tikai jÄpiereÄ£istrÄjas. AtstÄsim malÄ Å”Ä« fanu pūļa kvalitÄti, taÄu nenoliedzams, ka piedÄvÄjuma un pieprasÄ«juma lÄ«dzsvars ir nepÄrprotami nobÄ«dÄ«ts par labu meitenÄm.
Tinder funkcija
IdeÄls brutÄls spÄks dzimumu attiecÄ«bÄs
Å Ä«s platformas galvenÄ iezÄ«me ir zemÄs izmaksas par vienu paziÅu. Pietiek ar divu Å”vÄ«ku sakritÄ«bu, un jÅ«s jau sazinÄties ar potenciÄli interesantu cilvÄku. ProblÄma ir tÄ, ka viena un tÄ pati dzimumu nelÄ«dzsvarotÄ«ba noved pie tÄ, ka lielÄkajai daļai meiteÅu dienÄ bÅ«s desmitiem spÄļu. Tas nozÄ«mÄ, ka viÅiem, visticamÄk, nebÅ«s laika pievÄrst jums uzmanÄ«bu citu kandidÄtu vidÅ«.
PilnÄ«gi skaidrs, ka platforma paredz maz iespÄju novÄrtÄt cilvÄka dziļo iekÅ”Äjo pasauli no pusotras sekundes skatiena uz fotogrÄfiju peldkostÄ«mÄ vai braucot ar modernu tonÄtu auto. TÄpÄc, ja jÅ«s savÄs fotogrÄfijÄs neizskatÄties vienkÄrÅ”i dieviŔķi, jums nav citas izvÄles, kÄ palielinÄt savas iespÄjas, adoptÄjot
Datu vÄkÅ”ana
PirmkÄrt, normÄlai precizitÄtei ir nepiecieÅ”ams daudz datu. Ikviens, kurÅ” ir saskÄries ar maŔīnmÄcÄ«Å”anos, zina, cik grÅ«ti var bÅ«t izveidot pareizi savÄktu un marÄ·Ätu datu kopu. TeorÄtiski kÄ datu avots bÅ«s piemÄrots jebkurÅ” lÄ«dzÄ«gs resurss, vai tas bÅ«tu Instagram vai citi sociÄlie tÄ«kli. Bet vislabÄk ir apmÄcÄ«t tos paraugus, uz kuriem tÄ«kls darbosies nÄkotnÄ.
Å
emsim par pamatu repozitoriju
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)
Tas ļaus pÄc iespÄjas ÄtrÄk atzÄ«mÄt datu kopu tikai ar divÄm pogÄm. GalvenÄ problÄma slÄpjas faktÄ, ka werkzeug bibliotÄkai ir bojÄta atpakaļejoÅ”a savietojamÄ«ba un tai bÅ«s jÄsamazina tÄs versija. PretÄjÄ gadÄ«jumÄ tiek parÄdÄ«ta Ŕī kļūda.
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'
TÄpÄc failÄ prasÄ«bas.txt jÄraksta Werkzeug==0.16.1. Tad tas pacelsies.
Otra problÄma ir iegÅ«t tieÅ”i Å”o marÄ·ieri. Standarta metode no repozitorija man nederÄja, taÄu man izdevÄs to iegÅ«t no izstrÄdÄtÄja konsoles. Lai to izdarÄ«tu, dodieties uz
Prasības datu kopai
MaŔīnmÄcÄ«Å”anÄs datu kopÄm ir vairÄkas galvenÄs prasÄ«bas:
- Atbilstība
- Vienveidība
- Å Ä·irne
Lai Å”ajÄ gadÄ«jumÄ bÅ«tu pietiekami, ir nepiecieÅ”ams vismaz 10000 XNUMX fotogrÄfiju, lai izveidotu atbilstoÅ”u modeli. JÄ, tas ir daudz. TieÅ”i tÄpÄc pakalpojumiem patÄ«k
Ar daudzveidÄ«bu nav Ä«paÅ”u problÄmu, visas fotogrÄfijas ir attÄlotas no dažÄdiem leÅÄ·iem un apgaismojuma. BrillÄs, kleitÄs, peldkostÄ«mos un slÄpoÅ”anas kostÄ«mos. ProblÄma var rasties saistÄ«bÄ ar datu kopas vienveidÄ«bu. IdeÄlÄ gadÄ«jumÄ, ja mÄs marÄ·Äjam mÅ«su paraugu, tam vajadzÄtu sastÄvÄt no aptuveni vienÄdÄm daļÄm. Ja datu kopa ir āŔķībaā, tÄ bÅ«s jÄatŔķaida ar fotogrÄfijÄm no citiem avotiem. Jums bÅ«s jÄpievieno pievilcÄ«gÄki, vai otrÄdi, jÅ«s tos noteiksiet, pamatojoties uz uzcenojuma rezultÄtu. Man ir kaut kas apmÄram 60% skaists. Vai nu es neesmu pÄrÄk izvÄlÄ«ga, vai arÄ« man vienkÄrÅ”i ir paveicies un apkÄrt ir daudz skaistu meiteÅu.
Es arÄ« nenoliedzu hipotÄzi, ka starp tiem ir daudz robotu. MÄs apmÄcÄm botu, kuram patiks citi roboti. Å ajÄ ziÅÄ ir zinÄma ironija.
Datu apstrÄde
Mums ir vairÄkas atzÄ«mÄtas fotogrÄfijas, taÄu tÄs ir ļoti dažÄdas. DienÄ, naktÄ«, no aizmugures un citi. Ar nožÄlu saprotu, ka mÄcÄ«Å”ana no fotogrÄfijÄm no pretÄjÄ leÅÄ·a nebÅ«s Ä«paÅ”i efektÄ«va, jo paraugs bÅ«s ļoti nevienmÄrÄ«gs. TÄpÄc labÄkais risinÄjums bÅ«tu izmantot sejas kÄ ājaukumaā atsauces zÄ«mi. TomÄr mums, tÄpat kÄ citiem primÄtiem, tas ir galvenais parametrs.
TÄpÄc izmantosim
Tas ir sÄ«kÄk aprakstÄ«ts rokasgrÄmatÄ
NÄkamajÄ posmÄ, kad paraugÄ ir tikai sejas, ir jÄga noÅemt krÄsu. PatiesÄ«bÄ jums diez vai bÅ«s jÄizvÄlas starp Pandoras skaisto zilo iemÄ«tnieku vai zaļÄdaino skaistuli.
Hue cilvÄkiem Ädas krÄsa nedod bÅ«tisku ieguldÄ«jumu pievilcÄ«bas vÄrtÄjumÄ.
TÄpÄc ir vÄrts vienkÄrÅ”ot neironu tÄ«kla darbu un atstÄt tikai pelÄktoÅu.
Modeļu veidoŔana
Uzreiz gribu teikt, ka bez labas videokartes un CUDA jÅ«s, visticamÄk, vienkÄrÅ”i nesaÅemsiet apmÄcÄ«tu modeli atbilstoÅ”Ä laikÄ. TÄpÄc nekavÄjoties mÄÄ£iniet veikt aprÄÄ·inus specializÄtos mÄkoÅos vai izmantojot python-CUDA.
Es paÅÄmu pamata trÄ«s slÄÅu piemÄru no repozitorija autora, un pÄrsteidzoÅ”Ä kÄrtÄ tas uzrÄdÄ«ja ap 72% precizitÄti, kas ir diezgan labs rezultÄts.
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'])
Ja ir labs paraugs, ar to var pietikt, lai iegūtu izmantojamu modeli.
Palaidīsim botu
Paldies repozitorija autoram par gatavu variantu Ätrai idejas testÄÅ”anai. Faktiski tas darbojas diezgan labi pamata versijÄ, un principÄ to var palaist mÅ«su
rezultÄtus
Laikam esmu ļoti mÄ«lÄ«ga. Un man ir bagÄta iekÅ”ÄjÄ pasaule. Es dabÅ«ju apmÄram 13 spÄles stundas laikÄ. TurklÄt vairÄkas reizes meitenes rakstÄ«ja pirmÄs.
RezultÄtÄ mÄs nonÄcÄm pie ļoti jaukiem dialogiem, kuros es teicu, ka esmu ieradies tikai tÄpÄc, lai spÄlÄtu ar maŔīnmÄcÄ«Å”anos un datu marÄ·ÄÅ”anu. Viena no meitenÄm bija ÄrkÄrtÄ«gi ieinteresÄta, jo viÅa pati ir izstrÄdÄtÄja. Ir spÄcÄ«ga sajÅ«ta, ka viÅa galu galÄ izlasÄ«s Å”o ziÅu vietnÄ HabrĆ©. Ä»oti ceru, ka Oksana saglabÄs manu anonimitÄti. š
*pamÄj ar Ä·epu un saka Äau
Mazliet par jautÄjuma Ätisko pusi
GodÄ«gi sakot, man nepatÄ«k visa ideja robotizÄt attiecÄ«bas starp vÄ«rieÅ”iem un meitenÄm. Ir kaut kas ļoti pareizi mest jaku pÄr pleciem aukstam sveÅ”iniekam, kurÅ” stÄv viens pats. Vai arÄ« pieiet pie glÄ«tas meitenes vasaras kafejnÄ«cÄ un kopÄ iedzert kafiju. IzkÄpiet jau aiz monitoriem.
VisapkÄrt ir vasara. Ir pienÄcis laiks iepazÄ«ties.
Avots: www.habr.com