مشين لرننگ ۽ ٽينڊر استعمال ڪندي في ڪلاڪ 13 ڇوڪرين کي ڪيئن کڻڻ

* خالص طور تي مشين لرننگ سکڻ جي خاطر، يقينا. هن جي پياري زال جي ٿورڙي غير مطمئن نظر هيٺ.

ٽينڊر وانگر اسپينل ريفليڪس جي سطح تائين شايد ڪا به سادي درخواست ناهي. ان کي استعمال ڪرڻ لاءِ، توھان کي سوائپ ڪرڻ لاءِ صرف ھڪڙي آڱر ۽ ڪجھ نيورونز جي ضرورت آھي انھن ڇوڪرين يا ماڻھن کي چونڊڻ لاءِ جيڪي توھان کي پسند ڪن. جوڙي جي چونڊ ۾ وحشي قوت جو هڪ مثالي عمل.

مون فيصلو ڪيو ته اهو هڪ سٺو طريقو هوندو هڪ نئين گرافڪس ڪارڊ تي مشين لرننگ لاءِ ٿورو محسوس ڪرڻ جو. باقي اهو آهي ته منهنجي زال کي اها وضاحت ڪرڻي آهي ته مون کي ڪنهن نئين ٿلهي عورت جي ضرورت ناهي، ۽ مان صرف نيورل نيٽ ورڪ جي تربيت ڪري رهيو آهيان.

مشين لرننگ ۽ ٽينڊر استعمال ڪندي في ڪلاڪ 13 ڇوڪرين کي ڪيئن کڻڻ

ڊيٽنگ نيٽ ورڪ سان مسئلو ڇا آهي؟

اتي هڪ اهڙو وسيلو هو - ايشلي ميڊيسن. مخصوص، نعري سان "زندگي مختصر آهي. مامرو ڪر“. مکيه سامعين شادي شده مرد آهن جيڪي پاسي تي هڪ مامرو ڳولي رهيا آهن. منيٽائيزيشن به مزيدار آهي - ان کان علاوه معياري ”پسند پوائنٽس کي پسند ڪرڻ ۽ لکڻ لاءِ“، هنن $19 لاءِ چيو ته صارف جي اڪائونٽ کي بغير ڪنهن نشان جي حذف ڪرڻ لاءِ.

2015 ۾، سائيٽ قدرتي طور تي لڪي وئي ۽ 60 GB ذاتي ڊيٽا عوامي ڊومين ۾ لڪي وئي. ڪيترن ئي تباهه ٿيل خاندانن کان علاوه، هن ليک تجزيه نگارن کي تمام گهڻي دلچسپ معلومات ڏني. مون کي هميشه شڪ آهي ته اتي تمام گهڻو مردن جي تاريخن جي سائيٽن تي هئا، پر هن معاملي ۾ ان کي ڪافي دلچسپ ٿي ويو. صحافي اينلي نيويٽز ليڪ ٿيل ڊيٽا جو تجزيو معلوم ٿيو ته 5 ملين صارفين مان، صرف 12 حقيقي ڇوڪرين جي اڪائونٽن سان ملندڙ جلندڙ هئا ۽ باقاعده استعمال ڪيا ويا. باقي صرف بوٽ هئا جيڪي مرد سياحن سان چيٽ ڪندا هئا.

مردن جي اڪائونٽن ڏانهن اهڙي اڳڀرائي عام آهي نه رڳو هن وسيلن لاء، پر ٻين ڪيترن ئي تاريخن جي سائيٽن لاء پڻ. مون کي پڪ آهي ته ڪيترن ئي هن غير منصفانه صورتحال سان منهن ڪيو آهي، جڏهن توهان کي احتياط سان هڪ واقفيت جو منصوبو ڪرڻو پوندو، پر ڇوڪري کي صرف رجسٽر ڪرڻ جي ضرورت آهي. اچو ته مداحن جي هن ميڙ جي معيار کي هڪ طرف ڇڏي ڏيو، پر حقيقت اها آهي ته طلب ۽ رسد جو توازن واضح طور تي ڇوڪرين جي حق ۾ تبديل ٿي چڪو آهي.

Tinder جي خصوصيت

مشين لرننگ ۽ ٽينڊر استعمال ڪندي في ڪلاڪ 13 ڇوڪرين کي ڪيئن کڻڻ
صنفي تعلقات ۾ مثالي وحشي قوت

هن پليٽ فارم جي مکيه خصوصيت آهي گهٽ قيمت في واقفڪار. ٻه سوائپ جو اتفاق ڪافي آهي ۽ توهان اڳ ۾ ئي هڪ امڪاني طور تي دلچسپ شخص سان رابطو ڪري رهيا آهيو. مسئلو اهو آهي ته ساڳئي صنف جي عدم توازن حقيقت ڏانهن وڌي ٿي ته اڪثر ڇوڪرين کي روزانو درجنين ميچون هونديون. هن جو مطلب اهو آهي ته انهن وٽ گهڻو ڪري وقت نه هوندو ته توهان کي ٻين اميدوارن جي وچ ۾ ڌيان ڏيڻ لاء.

اها ڳالهه بلڪل واضح آهي ته پليٽ فارم هڪ swimsuit ۾ هڪ تصوير تي هڪ اڌ سيڪنڊ جي نظر کان هڪ شخص جي اندرين دنيا جو جائزو وٺڻ يا هڪ فيشن رنگا رنگ ڪار هلائڻ جو ٿورو موقعو آهي. تنهن ڪري، جيڪڏهن توهان صرف پنهنجي تصويرن ۾ خدائي نظر نه ٿا اچن، توهان وٽ ڪو به اختيار نه آهي سواء توهان جي موقعن کي وڌائڻ لاء اپنائڻ سان. آر حڪمت عملي ڪجهه قسمن ۾. آسان لفظ ۾، اسان نسل جي ڪاميابي جي اسان جي موقعن کي وڌائڻ لاء طاقت ۽ مقدار ۾ آڻينداسين. جيئن ته توهان کي ڪڏهن ڪڏهن کاڌي ۽ ننڊ کان پريشان ٿيڻ جي ضرورت آهي، ۽ سوائپ محدود آهن، توهان شايد ترجيح ڏيندؤ ته آٽوميشن ڇوڪرين يا مردن کي چونڊيو جيڪي توهان جي ذوق جي مطابق هجن. ننڍو ڳاڙهو يا ڊگهو brunettes - اهو توهان تي آهي.

ڊيٽا گڏ ڪرڻ

سڀ کان پهريان، توهان کي عام درستگي لاء تمام گهڻو ڊيٽا جي ضرورت آهي. ڪو به ماڻهو جنهن کي مشين لرننگ جو سامنا آهي اهو ڄاڻي ٿو ته اهو ڪيترو ڏکيو ٿي سگهي ٿو صحيح طور تي گڏ ڪيل ۽ ليبل ٿيل ڊيٽا سيٽ پيدا ڪرڻ. نظرياتي طور تي، ڪو به ساڳيو وسيلو ڊيٽا جي ذريعن جي طور تي مناسب هوندو، اهو Instagram هجي يا ٻيون سماجي نيٽ ورڪ. پر اھو بھترين آھي انھن نمونن تي تربيت ڏيڻ جن تي نيٽ ورڪ مستقبل ۾ ڪم ڪندو.

اچو ته مخزن کي بنياد طور وٺون ٽينڊر آٽوميشن. Tinder جون تصويرون هميشه عوامي طور تي دستياب آهن، پر "پسند" فنڪشن اڳ ۾ ئي محدود آهي. تنهن ڪري، اهو ضروري آهي ته سڀني جاندار شين کي ريڊيس اندر ڪڍيو وڃي ۽ انهن کي احتياط سان نشان لڳايو وڃي. پهرين توهان کي هڪ سادي اسڪرپٽ استعمال ڪرڻ جي ضرورت آهي:

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)

اهو توهان کي صرف ٻن بٽڻن سان جلدي ممڪن طور تي ڊيٽا سيٽ کي نشان لڳائڻ جي اجازت ڏيندو. اهم نقصان ان حقيقت ۾ آهي ته ورڪسيگ لائبريري پسمانده مطابقت کي ٽوڙي ڇڏيو آهي ۽ ان کي هيٺ ڪرڻ تي مجبور ڪرڻو پوندو. ٻي صورت ۾ اهو هن غلطي کي اڇلائي ٿو.

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'

تنهن ڪري، requirements.txt ۾ توهان کي لکڻ جي ضرورت آهي Werkzeug==0.16.1. پوءِ اُن کي ڪڍي ڇڏيندو.
ٻيو مسئلو اهو آهي ته هي ٽوڪن حاصل ڪرڻ. مخزن مان معياري طريقو مون لاء ڪم نه ڪيو، پر مون ان کي ڊولپر ڪنسول مان حاصل ڪرڻ جو انتظام ڪيو. هن کي ڪرڻ لاء، ڏانهن وڃو لنڪ ۽ پوسٽ جي درخواست جو جواب ڪڍيو www.facebook.com/v2.6/dialog/oauth/confirm?dpr=1. اندر اسين ڳوليندا آهيون 'access_token'. ڪجهه سببن لاءِ اهو پهريون ڀيرو ڪم نه ڪيو، پر پوءِ مون ان کي ڳولي لڌو ۽ ان کي اسڪرپٽ ۾ هارڊ ڪوڊ ڪيو.

ڊيٽا سيٽ گهرجون

مشين لرننگ ڊيٽا سيٽن لاءِ ڪيترائي اهم گهرج آهن:

  1. ڪافيت
  2. هڪجهڙائي
  3. مختلف

هن معاملي ۾ ڪافي جي ضرورت آهي گهٽ ۾ گهٽ 10000 تصويرون هڪ مناسب ماڊل ٺاهڻ لاء. ها، اهو تمام گهڻو آهي. اهو اصل ۾ ڇو خدمتون پسند آهي ايم ڊي ميزيڪل ميڪسيڪو ترڪي، جتي فيس لاءِ توهان ٻين ماڻهن کي پنهنجي ڊيٽا سيٽ جو مارڪ اپ نمائندو ڪري سگهو ٿا. ٻئي طرف، ڇا توهان واقعي چاهيو ٿا ته توهان جو بوٽ شاندار چنڊ جي منهن واري ايشيائي ڇوڪرين کي پسند ڪن يا هندستاني جڙڙن سان برابر خوبصورت ڇوڪريون؟ اڃان تائين، ماڊل توهان جي ذائقي کي ظاهر ڪرڻ گهرجي.

مختلف قسم سان ڪو خاص مسئلو ناهي؛ سڀئي تصويرون مختلف زاوين ۽ روشني کان پيش ڪيا ويا آهن. شيشي، لباس، swimsuits ۽ اسڪائي سوٽ ۾. ڊيٽا سيٽ جي هڪجهڙائي سان هڪ مسئلو پيدا ٿي سگهي ٿو. مثالي طور، جڏهن اسان اسان جي نموني کي ليبل ڪريون ٿا، اهو تقريبا برابر حصن تي مشتمل هجڻ گهرجي. جيڪڏھن توھان ختم ڪريو "skewed" dataset سان، توھان کي ان کي ٻين ذريعن جي تصويرن سان گھٽائڻو پوندو. توهان کي وڌيڪ پرڪشش شامل ڪرڻ جي ضرورت پوندي، يا ان جي برعڪس، توهان انهن کي مارڪ اپ نتيجن جي بنياد تي طئي ڪندا. مون کي تقريبا 60٪ خوبصورت شيء ملي. يا ته مان تمام چنچل نه آهيان، يا مان صرف خوش قسمت آهيان ۽ اتي تمام گهڻيون خوبصورت ڇوڪريون آهن.

مان ان مفروضي کي به رد نٿو ڪريان ته انهن ۾ ڪيترائي بوٽ آهن. اسان هڪ بوٽ کي تربيت ڏيون ٿا جيڪو ٻين بوٽن کي پسند ڪندو. هن ۾ ڪجهه طنز آهي.

ڊيٽا پروسيسنگ

اسان وٽ ٽيگ ٿيل فوٽوز جو هڪ گروپ آهي، پر اهي تمام ملايا آهن. ڏينهن جو، رات جو، پويان کان ۽ ٻيا. افسوس سان، مان سمجهان ٿو ته تصويرن کي ريورس زاويه کان درس ڏيڻ خاص طور تي اثرائتو نه ٿيندو، ڇاڪاڻ ته نمونو بلڪل غير برابر هوندو. تنهن ڪري، بهترين اختيار اهو هوندو ته منهن کي استعمال ڪرڻ لاء "خوبصورت" جي حوالي جي نشاني طور. اڃان تائين، اسان لاء، ٻين پرائيميٽ لاء، هي هڪ اهم پيٽرولر آهي.

تنهن ڪري، اچو ته استعمال ڪريون ھار cascades. هي هڪ بهترين الورورٿم آهي جيڪو توهان کي تصويرن ۾ منهن ڳولڻ جي اجازت ڏئي ٿو گهٽ سيڪڙو غلط مثبت غلطين سان.

مشين لرننگ ۽ ٽينڊر استعمال ڪندي في ڪلاڪ 13 ڇوڪرين کي ڪيئن کڻڻ
هن دستي ۾ وڌيڪ تفصيل سان بيان ڪيو ويو آهي OpenCV

ايندڙ اسٽيج تي، صرف منھن نموني ۾ آھن، اھو رنگ ختم ڪرڻ جو احساس آھي. حقيقت ۾، توهان کي مشڪل سان پنڊورا جي خوبصورت نيري ڊينيزين يا سائي چمڙي جي خوبصورتي جي وچ ۾ چونڊڻو پوندو.

مشين لرننگ ۽ ٽينڊر استعمال ڪندي في ڪلاڪ 13 ڇوڪرين کي ڪيئن کڻڻ
ذريعو

Hue ماڻهن ۾، چمڙي جو رنگ ڪشش جي درجه بندي ۾ اهم ڪردار ادا نٿو ڪري.
تنهن ڪري، اهو ضروري آهي ته نيورل نيٽ ورڪ جي ڪم کي آسان ڪرڻ ۽ صرف گريس اسڪيل ڇڏڻ.

ماڊل عمارت

مان فوري طور تي چوڻ چاهيان ٿو ته هڪ سٺي وڊيو ڪارڊ ۽ CUDA کان سواء، توهان کي گهڻو ڪري صرف مناسب وقت ۾ هڪ تربيتي ماڊل حاصل نه ٿيندو. تنهن ڪري، فوري طور تي خاص ڪڪر ۾ حساب ڪرڻ جو مقصد يا python-CUDA استعمال ڪندي.

مون هڪ بنيادي ٽن پرت جو مثال ورتو آهي مخزن جي مصنف کان ۽، حيرت انگيز طور تي، اهو تقريبا 72٪ جي درستگي ڏيکاري ٿو، جيڪو ڪافي سٺو نتيجو آهي.

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'])

جيڪڏھن ھڪڙو سٺو نمونو آھي، پوء اھو بھترين نموني حاصل ڪرڻ لاء ڪافي ٿي سگھي ٿو.

اچو ته بوٽ لانچ ڪريون

مشين لرننگ ۽ ٽينڊر استعمال ڪندي في ڪلاڪ 13 ڇوڪرين کي ڪيئن کڻڻ

مهرباني ڪري مخزن جي ليکڪ جي مهرباني، هڪ تيار ڪيل اختيار لاء جلدي خيال کي جانچڻ لاء. حقيقت ۾، اهو بنيادي نسخو ۾ تمام سٺو ڪم ڪري ٿو ۽ اصولن ۾، اسان تي شروع ڪري سگهجي ٿو تيار ڪيل ڪرائي تي ڪيل سرور. اڃا تائين ٽريننگ ڪرڻ ممڪن نه هوندو؛ هن وقت اسان ورچوئل مشينون مهيا نه ڪندا آهيون حسابن لاءِ CUDA سپورٽ سان، پر توهان بغير ڪنهن پريشاني جي 24/7 ڪجهه هلائي سگهو ٿا. بوٽ ڪافي ہلڪو وزن آهي، تنهن ڪري اهو وڌيڪ منافعو هوندو ته هڪ ٽريف وٺڻ لاء جيڪو استعمال ڪيل وسيلن جي ادائيگي لاء.

نتيجا

مشين لرننگ ۽ ٽينڊر استعمال ڪندي في ڪلاڪ 13 ڇوڪرين کي ڪيئن کڻڻ
مان سمجهان ٿو ته مان ڏاڍو پيارو آهيان. ۽ مون وٽ هڪ امير اندروني دنيا آهي. مون هڪ ڪلاڪ اندر 13 ميچن وانگر ڪجهه حاصل ڪيو. ان کان سواء، ڪيترائي ڀيرا ڇوڪرين پهريون ڀيرو لکيو.
نتيجي طور، اسان تمام سٺي گفتگو سان ختم ڪيو، جتي مون چيو ته مان صرف مشين سکيا ۽ ڊيٽا ليبلنگ سان راند ڪرڻ لاء آيو آهيان. ڇوڪرين مان هڪ تمام گهڻي دلچسپي هئي، ڇاڪاڻ ته هوء پاڻ هڪ ڊولپر آهي. اتي هڪ مضبوط احساس آهي ته هوء آخرڪار هن پوسٽ کي Habré تي پڙهي سگهندي. مون کي اميد آهي ته اوڪسانا منهنجي گمنام کي برقرار رکندو. 🙂
* هٿ هٿ ڪري سلام چوڻ

مسئلي جي اخلاقي پاسي جي باري ۾ ٿورو

ايماندار ٿيڻ لاء، مون کي مردن ۽ ڇوڪرين جي وچ ۾ رشتن کي روبوٽ ڪرڻ جو سڄو خيال پسند نه آهي. پنهنجي جيڪٽ کي ڪنهن ٿڌي اجنبي جي ڪلهن تي اڇلائڻ بابت بلڪل صحيح آهي جيڪو اڪيلو بيٺو آهي. يا اونهاري جي ڪيفي ۾ هڪ خوبصورت ڇوڪري سان رابطو ڪريو ۽ گڏجي ڪافي پيئو. اڳي ئي مانيٽر جي پويان ٻاهر وڃو.

اونهاري جي چوڌاري آهي. اهو واقف ٿيڻ جو وقت آهي.

مشين لرننگ ۽ ٽينڊر استعمال ڪندي في ڪلاڪ 13 ڇوڪرين کي ڪيئن کڻڻ

مشين لرننگ ۽ ٽينڊر استعمال ڪندي في ڪلاڪ 13 ڇوڪرين کي ڪيئن کڻڻ

جو ذريعو: www.habr.com

تبصرو شامل ڪريو