Google Colab को डिस्कनेक्ट करने से कैसे रोकें?


137

प्रश्न: क्या Google Colab को समय-समय पर डिस्कनेक्ट करने से रोकने का कोई तरीका है ?

निम्नलिखित उन स्थितियों का वर्णन करता है जो नोटबुक को स्वचालित रूप से डिस्कनेक्ट करने का कारण बनती हैं:

Google Colab नोटबुक में 90 मिनट का समय और 12 घंटे का पूर्ण समय समाप्त होता है। इसका अर्थ है, यदि उपयोगकर्ता अपने Google Colab नोटबुक के साथ 90 मिनट से अधिक समय तक बातचीत नहीं करता है, तो इसका उदाहरण स्वचालित रूप से समाप्त हो जाता है। साथ ही, कोलाब के उदाहरण का अधिकतम जीवनकाल 12 घंटे है।

स्वाभाविक रूप से, हम मैन्युअल रूप से लगातार इसके साथ बातचीत किए बिना , उदाहरण से अधिकतम का स्वचालित रूप से निचोड़ना चाहते हैं । यहां मैं आमतौर पर देखी गई सिस्टम आवश्यकताओं को मानूंगा:

  • Ubuntu 18 LTS / विंडोज 10 / मैक ऑपरेटिंग सिस्टम
  • लिनक्स आधारित प्रणालियों के मामले में, लोकप्रिय DEs जैसे ग्नोम 3 या यूनिटी का उपयोग करना
  • फ़ायरफ़ॉक्स या क्रोमियम ब्राउज़र

मुझे यहाँ बताना चाहिए कि ऐसा व्यवहार Google Colab की उपयोग की शर्तों का उल्लंघन नहीं करता है , हालाँकि यह उनके FAQ के अनुसार प्रोत्साहित नहीं किया जाता है (संक्षेप में: नैतिक रूप से सभी GPU का उपयोग करना ठीक नहीं है यदि आपको वास्तव में इसकी आवश्यकता नहीं है )।


मेरा वर्तमान समाधान बहुत गूंगा है:

  • सबसे पहले, मैं स्क्रीनसेवर को बंद कर देता हूं, इसलिए मेरा श्रीन हमेशा चालू रहता है।
  • मेरे पास एक Arduino बोर्ड है, इसलिए मैंने इसे एक रबर डस्की यूएसबी में बदल दिया और इसे सोते समय आदिम उपयोगकर्ता बातचीत का अनुकरण करना (सिर्फ इसलिए कि मेरे पास अन्य उपयोग के मामलों के लिए हाथ है)।

क्या बेहतर तरीके हैं?


1
मैं भी उसी सवाल के बारे में सोच रहा था। अपने थीसिस रक्षा के समय के दौरान छात्रों के लिए सहायक होगा।
दिमित्री

2
"90 मिनट की निष्क्रिय समय-सीमा ... यदि कोई उपयोगकर्ता अपने Google Colab नोटबुक के साथ 90 मिनट से अधिक समय तक बातचीत नहीं करता है, तो इसका उदाहरण स्वचालित रूप से समाप्त हो जाता है।" यह बुरा है क्योंकि केरास्टुनर तब उपयोग करना असंभव है। Google कर्मचारियों को और अधिक कठिन सोचने की आवश्यकता है, यदि वे वास्तव में चाहते हैं कि जनता केरस्टुनर का उपयोग करे।
जेफ्री एंडरसन

1
मैं इस स्क्रिप्ट को निष्पादित करने से कैसे रोकूं?
मुर्तजा कमल

1
एक कोड नहीं बल्कि आपके सिस्टम पर एक छोटा वजन और बैकस्पेस कुंजी आपके लिए ट्रिक का काम कर सकती है। आशा है आप समझ गए होंगे!
विकलप जैन

जवाबों:


119

संपादित करें: जाहिरा तौर पर समाधान बहुत आसान है, और किसी भी जावास्क्रिप्ट की आवश्यकता नहीं है। बस निम्नलिखित पंक्ति वाले तल पर एक नया सेल बनाएं:

while True:pass

अब सेल को रन क्रम में रखें ताकि अनंत लूप बंद न हो और इस तरह आपका सत्र जीवित रहे।

पुरानी विधि: प्रत्येक 60 सेकंड में कनेक्ट बटन पर क्लिक करने के लिए एक जावास्क्रिप्ट अंतराल सेट करें। Ctrl + Shift + I के साथ डेवलपर (आपके वेब-ब्राउज़र में) खोलें और फिर कंसोल टैब पर क्लिक करें और इसे कंसोल प्रांप्ट पर टाइप करें। (मैक प्रेस विकल्प + कमांड + I के लिए)

function ConnectButton(){
    console.log("Connect pushed"); 
    document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click() 
}
setInterval(ConnectButton,60000);

1
यह कहते हैं अनकैप्ड टाइपर्रर: कनेक्टबॉटन में अशक्त की संपत्ति 'क्लिक' नहीं पढ़ सकते
Shaida मुहम्मद

1
ऐसा लगता है कि आप का उत्तर पुराना है
जगंल

1
जेएस चयनकर्ता
तनय कर्वे

4
क्रोम में, आप इस स्निपेट को एक क्लिक पर सक्रिय करने के लिए एक बुकमार्क बना सकते हैं। बस निम्नलिखित URL के साथ एक बुकमार्क बनाएं: javascript:void(setInterval(function(){ console.log("Connect pushed"); document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click(); },60000))(उसी कमांड का वन-लाइनर संस्करण)। मुझे यकीन नहीं है कि यह अन्य ब्राउज़रों में काम करता है
पीडीपीनो

1
@qAp मैंने पाया कि यह तब भी काम करेगा जब आप एक अलग टैब पर हैं, या स्क्रीनसेवर के कारण आपकी स्क्रीन बंद है (मैं 10 घंटे से अधिक समय से मॉडल का प्रशिक्षण ले रहा हूं)
फाल्कनुआ

50

चूंकि कनेक्ट बटन की आईडी को अब "कोलाब-कनेक्ट-बटन" में बदल दिया गया है, बटन पर क्लिक करते रहने के लिए निम्न कोड का उपयोग किया जा सकता है।

function ClickConnect(){
    console.log("Clicked on connect button"); 
    document.querySelector("colab-connect-button").click()
}
setInterval(ClickConnect,60000)

यदि फिर भी, यह काम नहीं करता है, तो नीचे दिए गए चरणों का पालन करें:

  1. कनेक्ट बटन पर राइट-क्लिक करें (कोलाब के ऊपरी-दाईं ओर)
  2. निरीक्षण पर क्लिक करें
  3. बटन के HTML आईडी प्राप्त करें और निम्न कोड में स्थानापन्न करें
function ClickConnect(){
    console.log("Clicked on connect button"); 
    document.querySelector("Put ID here").click() // Change id here
}
setInterval(ClickConnect,60000)

5
यह नए बटन आईडी (फरवरी -२०२०) के अनुसार वर्तमान समाधान है
कौशल

यदि Google कभी भी इस काम नहीं करने की कोशिश करने जा रहा है (उदाहरण: इसे एक वर्ग बनाएं और उसी वर्ग के साथ कई नकली अदृश्य बटन हैं) तो आप हमेशा चरण 3 के बजाय हमेशा कर सकते हैं: राइट क्लिक करें -> कॉपी -> कॉपी JS पथ
Banjer_HD

अभी भी एक ही मुद्दा रनटाइम डिस्कनेक्ट हो रहा है, निष्क्रियता के कारण रनटाइम डिस्कनेक्ट हो गया है
सुषमा कुमारि

5
मैं इस स्क्रिप्ट को निष्पादित करने से कैसे रोकूं?
मुर्तजा कमल

2
@MurtazaKamal Crtl + Shift + I, सूत्रों पर जाएं और पॉज़ बटन पर क्लिक करें।
फैसल मकबूल

19

वैसे यह मेरे लिए काम कर रहा है -

कंसोल में निम्न कोड चलाएँ और यह आपको डिस्कनेक्ट करने से रोकेगा। इंस्पेक्टर दृश्य खोलने के लिए Ctrl + Shift + i। फिर कंसोल में जाएं।

function ClickConnect(){
    console.log("Working"); 
    document.querySelector("colab-toolbar-button#connect").click() 
}
setInterval(ClickConnect,60000)

Google colab को डिस्कनेक्ट होने से कैसे रोके


1
धन्यवाद यह मेरे लिए भी अच्छा काम करता है। (मैंने पिछले हफ्ते यहां एक ही टिप्पणी छोड़ दी थी लेकिन यह गायब हो गया। यह काम नहीं खोना महत्वपूर्ण है, इसलिए यह उत्तर सकारात्मक प्रतिक्रिया के योग्य है।)
ज्योफ्री एंडरसन

काम नहीं कर रहा है, फिर भी डिस्कनेक्ट हो जाता है। (फ़ायरफ़ॉक्स ब्राउज़र 74.0 (64-बिट) का उपयोग करना)।
hafiz031

क्या यह तब भी काम करता है जब आप ब्राउज़र विंडो को छोटा करते हैं और अन्य अनुप्रयोगों के साथ काम करते हैं?
हैरी

18

मेरे लिए निम्नलिखित उदाहरण हैं:

  • document.querySelector("#connect").click() या
  • document.querySelector("colab-toolbar-button#connect").click() या
  • document.querySelector("colab-connect-button").click()

त्रुटियों को फेंक रहे थे।

मुझे उन्हें निम्नलिखित के अनुकूल बनाना पड़ा:

संस्करण 1:

function ClickConnect(){
  console.log("Connnect Clicked - Start"); 
  document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click();
  console.log("Connnect Clicked - End"); 
};
setInterval(ClickConnect, 60000)

संस्करण 2: यदि आप फ़ंक्शन को रोकना चाहते हैं, तो यहां नया कोड है:

var startClickConnect = function startClickConnect(){
    var clickConnect = function clickConnect(){
        console.log("Connnect Clicked - Start");
        document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click();
        console.log("Connnect Clicked - End"); 
    };

    var intervalId = setInterval(clickConnect, 60000);

    var stopClickConnectHandler = function stopClickConnect() {
        console.log("Connnect Clicked Stopped - Start");
        clearInterval(intervalId);
        console.log("Connnect Clicked Stopped - End");
    };

    return stopClickConnectHandler;
};

var stopClickConnect = startClickConnect();

रोकने के लिए, कॉल करें:

stopClickConnect();

मेरे लिए, यह एकमात्र समाधान है जो त्रुटि नहीं फेंकता है। धन्यवाद
जोड़ी

मैंने उपरोक्त तरीकों की कोशिश की है, और कुछ अन्य ब्लॉग। अब तक, और वर्तमान दिन के लिए प्रासंगिक, आपके दोनों कोड त्रुटि मुक्त हैं। धन्यवाद :)
हैरी

15

pynput के साथ अपने पीसी में एक अजगर कोड बनाएँ

from pynput.mouse import Button, Controller
import time

mouse = Controller()

while True:
    mouse.click(Button.left, 1)
    time.sleep(30)

इस कोड को अपने डेस्कटॉप में चलाएं, फिर किसी भी डायरेक्टरी पर माउस ऐरो ओवर (कोलैब्स लेफ्ट पैनल - फाइल सेक्शन) डायरेक्टरी स्ट्रक्चर पर क्लिक करें। यह कोड हर 30 सेकंड पर डायरेक्टरी पर क्लिक करता रहेगा, इसलिए यह हर 30 सेकंड में एक्सपेंड और सिकुड़ता रहेगा, इसलिए आपका सेशन नहीं होगा महत्वपूर्ण हो जाओ - आप अपने पीसी में इस कोड को चलाने के लिए है


मैंने यह कोशिश की और जब मैंने pynput आयात किया तो एक DisplayNameError मिली। यह शायद इसलिए है क्योंकि हम केवल एक ब्राउज़र के माध्यम से कोलाब का उपयोग कर सकते हैं (एक होस्ट किए गए रनटाइम सत्र में) और कीबोर्ड / माउस आदि नहीं
हसनैनमादानी

मुझे लगता है, आपने इस विचार को गलत समझा है। कोलाब को अजगर से नहीं देखा जाता है। केवल अपने माउस ऊपर कोड (अनुकरण करने के लिए क्योंकि, ब्राउज़र की मदद से माउस बातचीत) स्थानीय पीसी में .Fix पुस्तकालय मुद्दों द्वारा नियंत्रित
Seyon Seyon

13

कनेक्ट बटन पर क्लिक करने के बजाय, मैं अपने सत्र को जीवित रखने के लिए टिप्पणी बटन पर क्लिक कर रहा हूं। (अगस्त-2020)

function ClickConnect(){

console.log("Working"); 
document.querySelector("#comments > span").click() 
}
setInterval(ClickConnect,5000)

11

मैं पूरी रात मॉडल को प्रशिक्षित करने के लिए समय-समय पर रैम / डिस्क बटन पर मैक्रो प्रोग्राम का उपयोग करता हूं । चाल को दो क्लिक के बीच एक छोटे अंतराल के साथ दो बार राम / डिस्क कोलाब टूलबार बटन पर क्लिक करने के लिए एक मैक्रो प्रोग्राम को कॉन्फ़िगर करना है, ताकि अगर रनटाइम डिस्कनेक्ट हो जाए तो भी इसे वापस कनेक्ट हो जाए। (संवाद बॉक्स को बंद करने के लिए उपयोग किया जाने वाला पहला क्लिक और RECONNECT के लिए प्रयुक्त दूसरा क्लिक)। हालांकि, आपको अभी भी पूरी रात अपने लैपटॉप को खुला छोड़ना होगा और शायद कोला टैब को पिन करना होगा।


8

कुछ स्क्रिप्ट की मदद से उपरोक्त उत्तर शायद अच्छी तरह से काम करते हैं। मेरे पास स्क्रिप्ट के बिना उस कष्टप्रद वियोग के लिए एक समाधान (या एक प्रकार की चाल) है, खासकर जब आपके कार्यक्रम को आपके Google ड्राइव से डेटा पढ़ना चाहिए, जैसे कि एक गहन सीखने के नेटवर्क मॉडल को प्रशिक्षित करना, जहां स्क्रिप्ट का उपयोग करने के लिए reconnectऑपरेशन का कोई फायदा नहीं है क्योंकि एक बार आप अपने कोलाब के साथ डिस्कनेक्ट करते हैं, प्रोग्राम बस मर चुका है, आपको अपने मॉडल को फिर से डेटासेट पढ़ने में सक्षम बनाने के लिए अपने Google ड्राइव से मैन्युअल रूप से कनेक्ट करना चाहिए, लेकिन स्क्रिप्ट उस चीज़ को नहीं करेंगे।
मैंने पहले ही कई बार इसका परीक्षण किया है और यह अच्छी तरह से काम करता है।
जब आप एक ब्राउज़र (मैं क्रोम का उपयोग करते हैं) के साथ कोलाब पृष्ठ पर एक कार्यक्रम चलाते हैं, तो बस याद रखें कि आपका प्रोग्राम चलने के बाद अपने ब्राउज़र पर कोई भी संचालन न करें, जैसे: अन्य वेबपृष्ठों पर स्विच करना, किसी अन्य वेबपेज को खोलना या बंद करना, और इस तरह, बस इसे वहीं छोड़ दें और अपने प्रोग्राम के समाप्त होने का इंतजार करते हुए, आप किसी अन्य सॉफ़्टवेयर पर स्विच कर सकते हैं, जैसे कि pycharm अपने कोड लिखना जारी रखें, लेकिन किसी अन्य वेबपेज पर स्विच न करें। मुझे नहीं पता कि अन्य पृष्ठों को खोलने या बंद करने या स्विच करने के कारण Google कोलाब पृष्ठ की कनेक्शन समस्या का कारण होगा, लेकिन हर बार जब मैं अपने ब्राउज़र को परेशान करने की कोशिश करता हूं, जैसे कुछ खोज कार्य करते हैं, तो कोलाब से मेरा कनेक्शन जल्द ही टूट जाएगा।


मैं आपके उत्तर में जोड़ूंगा कि फ़ायरफ़ॉक्स इस ट्रिक के साथ ठीक काम कर रहा है। लेकिन मेरे लिए मैंने अपने मैक पर स्लीप मोड को बंद कर दिया और ब्राउज़र विंडो को अन्य सभी विंडो के सामने रख दिया जैसे कि मैं सक्रिय रूप से काम कर रहा हूं। मैंने इसे पूरी रात रखा और यह काम करता है। किसी भी जावास्क्रिप्ट चाल में काम नहीं किया है। एक नोट यह है कि मैं Google कोलाब प्रो का उपयोग कर रहा हूं: इसलिए मुझे यकीन नहीं है कि यह मुफ्त कोलाब के साथ काम करेगा।
यासर सिनाबज

@ यासर सिनाज़ब आपके योगों के लिए धन्यवाद, मैं मुफ्त संस्करण का उपयोग करता हूं और यह अच्छी तरह से काम करता है।
हू जिक्सी

8

इसे इस्तेमाल करे:

function ClickConnect(){
  console.log("Working"); 
  document
    .querySelector("#top-toolbar > colab-connect-button")
    .shadowRoot
    .querySelector("#connect")
    .click()
}

setInterval(ClickConnect,60000)

6

अजगर सेलेनियम का उपयोग करना

from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import time   

driver = webdriver.Chrome('/usr/lib/chromium-browser/chromedriver')

notebook_url = ''
driver.get(notebook_url)

# run all cells
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.F9)
time.sleep(5)

# click to stay connected
start_time = time.time()
current_time = time.time()
max_time = 11*59*60 #12hours

while (current_time - start_time) < max_time:
    webdriver.ActionChains(driver).send_keys(Keys.ESCAPE).perform()
    driver.find_element_by_xpath('//*[@id="top-toolbar"]/colab-connect-button').click()
    time.sleep(30)
    current_time = time.time()

6

मुझे विश्वास नहीं है कि जावास्क्रिप्ट समाधान अब काम करते हैं। मैं इसे अपनी नोटबुक के भीतर से कर रहा था:

    from IPython.display import display, HTML
    js = ('<script>function ConnectButton(){ '
           'console.log("Connect pushed"); '
           'document.querySelector("#connect").click()} '
           'setInterval(ConnectButton,3000);</script>')
    display(HTML(js))

जब आप पहली बार एक रन (जावास्क्रिप्ट या पायथन कोड शुरू होने से पहले) करते हैं, तो कंसोल प्रदर्शित करता है:

Connected to 
wss://colab.research.google.com/api/kernels/0e1ce105-0127-4758-90e48cf801ce01a3/channels?session_id=5d8...

हालाँकि, जब भी जावास्क्रिप्ट चलता है, आप कंसोल.लॉग भाग देखते हैं, लेकिन क्लिक भाग बस देता है:

Connect pushed

Uncaught TypeError: Cannot read property 'click' of null
 at ConnectButton (<anonymous>:1:92)

दूसरों ने सुझाव दिया कि बटन का नाम # कोलाब-कनेक्ट-बटन में बदल गया है, लेकिन यह वही त्रुटि देता है।

रनटाइम शुरू होने के बाद, बटन को RAM / DISK दिखाने के लिए बदल दिया जाता है, और एक ड्रॉप डाउन प्रस्तुत किया जाता है। ड्रॉप डाउन पर क्लिक करना एक नया बनाता है <DIV class=goog menu...>जो पहले डोम में नहीं दिखाया गया था, जिसमें 2 विकल्प "होस्ट किए गए रनटाइम से कनेक्ट करें" और "स्थानीय रनटाइम से कनेक्ट करें" हैं। यदि कंसोल विंडो खुली है और तत्वों को दिखा रही है, तो आप ड्रॉपडाउन तत्व पर क्लिक करने पर इस DIV को देख सकते हैं। बस दिखाई देने वाली नई विंडो में दो विकल्पों के बीच माउस फ़ोकस को स्थानांतरित करना, DOM में अतिरिक्त तत्वों को जोड़ता है, जैसे ही माउस फ़ोकस खोता है, उन्हें DOM से पूरी तरह हटा दिया जाता है, यहाँ तक कि बिना क्लिक किए।


सहमत हूँ, क्या कोई समाधान है
तल्हा अनवर

5

मैंने ऊपर दिए कोड की कोशिश की, लेकिन उन्होंने मेरे लिए काम नहीं किया। तो यहाँ मेरा जेएस कोड फिर से जोड़ने के लिए है।

let interval = setInterval(function(){
let ok = document.getElementById('ok');
if(ok != null){
   console.log("Connect pushed");
ok.click();
}},60000)

आप इसे चलाने के लिए उसी तरह से उपयोग कर सकते हैं (इसे अपने ब्राउज़र के कंसोल पर चलाएं)। यदि आप स्क्रिप्ट को रोकना चाहते हैं, तो आप दर्ज कर सकते हैं clearInterval(interval)और फिर से चलना चाहते हैं setInterval(interval)

मैं आशान्वित हूं कि इससे आपको सहायता मिलेगी।


5

अद्यतन किया गया। इससे मेरा काम बनता है।

function ClickConnect(){
console.log("Working"); 
document.querySelector("paper-icon-button").click()
}
Const myjob = setInterval(ClickConnect, 60000)

यदि आप लोगों के लिए यह काम नहीं कर रहा है तो आप इसे चलाकर साफ़ करें:

clearInterval(myjob)


4

इसने मेरे लिए काम किया (ऐसा लगता है कि उन्होंने बटन क्लासनेम या आईडी बदल दिया है):

function ClickConnect(){
    console.log("Working"); 
    document.querySelector("colab-connect-button").click() 
}
setInterval(ClickConnect,60000)


4

सबसे अधिक वोट किया गया जवाब निश्चित रूप से मेरे लिए काम करता है, लेकिन यह प्रबंधित सत्र विंडो को बार-बार पॉप अप करता है।
मैंने हल किया है कि नीचे दिए गए ब्राउज़र कंसोल का उपयोग करके ताज़ा बटन पर क्लिक करके

function ClickRefresh(){
    console.log("Clicked on refresh button"); 
    document.querySelector("paper-icon-button").click()
}
setInterval(ClickRefresh, 60000)

इस gist https://gist.github.com/Subangkar/fd1ef276fd40dc374a7c80acc247613e


4

शायद पिछले समाधानों में से कई अब काम नहीं कर रहे हैं। उदाहरण के लिए, यह बलो कोड कोलैब में नए कोड सेल बनाने के लिए जारी है, हालांकि काम कर रहा है। निस्संदेह, कोड कोशिकाओं का एक गुच्छा बनाना एक असुविधा है। यदि बहुत सारे कोड सेल रनिंग के कुछ घंटों में बनते हैं और पर्याप्त रैम नहीं है, तो ब्राउजर फ्रीज हो सकता है।

यह बार-बार कोड सेल बनाता है-

function ClickConnect(){
console.log("Working"); 
document.querySelector("colab-toolbar-button").click() 
}setInterval(ClickConnect,60000)

लेकिन मैंने पाया कि नीचे दिया गया कोड काम कर रहा है, इससे कोई समस्या नहीं है। कोलाब नोटबुक टैब में, Ctrl + Shift + iएक साथ कुंजी पर क्लिक करें और कंसोल में नीचे कोड पेस्ट करें। 120000 अंतराल पर्याप्त हैं।

function ClickConnect(){
console.log("Working"); 
document.querySelector("colab-toolbar-button#connect").click() 
}setInterval(ClickConnect,120000)

मैंने नवंबर 2020 में फ़ायरफ़ॉक्स में इस कोड का परीक्षण किया है। यह क्रोम पर भी काम करेगा।


3

मैं JQuery का उपयोग करने की सलाह दूंगा (ऐसा लगता है कि सह-प्रयोगशाला में डिफ़ॉल्ट रूप से JQuery शामिल है)।

function ClickConnect(){
  console.log("Working");
  $("colab-toolbar-button").click();
}
setInterval(ClickConnect,60000);

यह काम नहीं करता है:Uncaught ReferenceError: $ is not defined at ClickConnect (<anonymous>:3:3)
केल सोलर

3

मुझे इन जावास्क्रिप्ट कार्यों के साथ एक समस्या है:

function ClickConnect(){
    console.log("Clicked on connect button"); 
    document.querySelector("colab-connect-button").click()
}
setInterval(ClickConnect,60000)

वे वास्तव में क्लिक किए जाने से पहले कंसोल पर "कनेक्टेड बटन पर क्लिक" प्रिंट करते हैं। जैसा कि आप इस धागे में अलग-अलग उत्तरों से देख सकते हैं, कनेक्ट बटन की आईडी को Google Colab लॉन्च किए जाने के बाद से कई बार बदला गया है। और इसे भविष्य में भी बदला जा सकता है। इसलिए यदि आप इस थ्रेड से एक पुराने उत्तर को कॉपी करने जा रहे हैं, तो यह "कनेक्टेड बटन पर क्लिक" कह सकता है, लेकिन यह वास्तव में ऐसा नहीं कर सकता है। बेशक अगर क्लिक करने से काम नहीं चलेगा, तो यह कंसोल पर एक त्रुटि प्रिंट करेगा लेकिन क्या होगा यदि आप गलती से इसे नहीं देख सकते हैं? तो आप बेहतर करते हैं:

function ClickConnect(){
    document.querySelector("colab-connect-button").click()
    console.log("Clicked on connect button"); 
}
setInterval(ClickConnect,60000)

और आप निश्चित रूप से देखेंगे कि क्या यह वास्तव में काम करता है या नहीं।


3
function ClickConnect()
{
    console.log("Working...."); 
    document.querySelector("paper-button#comments").click()
}
setInterval(ClickConnect,600)

यह मेरे लिए काम करता है लेकिन बुद्धिमानी से उपयोग करें

खुश सीखने :)


3

निम्नलिखित नवीनतम समाधान मेरे लिए काम करता है:

function ClickConnect(){
  colab.config
  console.log("Connnect Clicked - Start"); 
  document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click();
  console.log("Connnect Clicked - End");
};
setInterval(ClickConnect, 60000)

अपने उत्तर के लिए स्पष्टीकरण सहित विचार करें।
सूरज सुब्रमण्यन

3

नीचे दी गई जावास्क्रिप्ट मेरे लिए काम करती है। श्रेय @ artur.k.space को

function ColabReconnect() {
    var dialog = document.querySelector("colab-dialog.yes-no-dialog");
    var dialogTitle = dialog && dialog.querySelector("div.content-area>h2");
    if (dialogTitle && dialogTitle.innerText == "Runtime disconnected") {
        dialog.querySelector("paper-button#ok").click();
        console.log("Reconnecting...");
    } else {
        console.log("ColabReconnect is in service.");
    }
}
timerId = setInterval(ColabReconnect, 60000);

Colab नोटबुक में, iएक साथ Ctrl + Shift + कुंजी पर क्लिक करें । स्क्रिप्ट को प्रॉम्प्ट लाइन में कॉपी और पेस्ट करें। फिर Enterसंपादक को बंद करने से पहले मारा ।

ऐसा करने से, फ़ंक्शन प्रत्येक 60 सेकंड की जांच करेगा यह देखने के लिए कि क्या ऑनस्क्रीन कनेक्शन संवाद दिखाया गया है, और यदि यह है, तो फ़ंक्शन okआपके लिए स्वचालित रूप से बटन पर क्लिक करेगा।


3

वैसे मैं अजगर आदमी नहीं हूं और न ही मुझे पता है कि इस 'कोलाब' का वास्तविक उपयोग क्या है, मैं इसे एक बिल्ड सिस्टम लोल के रूप में उपयोग करता हूं। और मैंने इसमें ssh फॉरवर्ड करने के लिए सेटअप किया और फिर इस कोड को डाल दिया और बस इसे चलाना छोड़ दिया और हाँ यह काम करता है।

import getpass
authtoken = getpass.getpass()

3

यह कोड फ़ाइल एक्सप्लोरर फलक में "रिफ्रेश फ़ोल्डर" पर क्लिक करता रहता है।

function ClickRefresh(){
  console.log("Working"); 
  document.querySelector("[icon='colab:folder-refresh']").click()
}
const myjob = setInterval(ClickRefresh, 60000)

1
ध्यान दें कि इस काम के लिए फ़ाइल एक्सप्लोरर / फ़ोल्डर फलक का विस्तार किया जाना चाहिए।
केल सोलावर

3

ग्नू कोलाब आपको एक सहयोगात्मक उदाहरण के शीर्ष पर एक मानक निरंतर डेस्कटॉप वातावरण चलाने की सुविधा देता है।

वास्तव में इसमें मशीनों को बेकार नहीं होने देने की व्यवस्था है।

यहाँ एक वीडियो प्रदर्शन है


2

आप तीर कुंजी को दबाने के लिए अजगर का उपयोग भी कर सकते हैं। मैंने निम्नलिखित कोड में भी थोड़ा यादृच्छिकता जोड़ा है।

from pyautogui import press, typewrite, hotkey
import time
from random import shuffle

array = ["left", "right", "up", "down"]

while True:
    shuffle(array)
    time.sleep(10)
    press(array[0])
    press(array[1])
    press(array[2])
    press(array[3])

जिस तरह से आप शायद की सामग्री का उपयोग करना चाहते हैं array, यह कोड हर बार L, R, U, D को दबाने के लिए पूरी तरह से निर्धारित होता है
Marc Laugharn

क्यों नहींfor key in array: press(key)
PixelZerg

2

डेटा हानि से बचाने के लिए जिस सेल को आप चलाना चाहते हैं, उसके बाद बस नीचे दिए गए कोड को चलाएं।

!python

इस मोड से बाहर निकलने के लिए भी लिखें

exit()

2

मैं एक समाधान की तलाश में था जब तक कि मुझे एक पायथन 3 नहीं मिला जो अनियमित रूप से माउस को आगे-पीछे करता है और क्लिक करता है, हमेशा एक ही स्थान पर, लेकिन यह सोचकर कि मैं नोटबुक पर सक्रिय हूं और डिस्कनेक्ट नहीं कर रहा हूं, कोलैब को मूर्ख बनाने के लिए पर्याप्त है।

import numpy as np
import time
import mouse
import threading

def move_mouse():
    while True:
        random_row = np.random.random_sample()*100
        random_col = np.random.random_sample()*10
        random_time = np.random.random_sample()*np.random.random_sample() * 100
        mouse.wheel(1000)
        mouse.wheel(-1000)
        mouse.move(random_row, random_col, absolute=False, duration=0.2)
        mouse.move(-random_row, -random_col, absolute=False, duration = 0.2)
        mouse.LEFT
        time.sleep(random_time)


x = threading.Thread(target=move_mouse)
x.start()

आपको आवश्यक पैकेजों को स्थापित करने की आवश्यकता है: sudo -H pip3 install <package_name> आपको इसे (अपनी स्थानीय मशीन में) चलाने की आवश्यकता है sudo(जैसा कि यह माउस को नियंत्रित करता है) और इसे काम करना चाहिए, जिससे आप कोलाब के 12 वें सत्रों का पूरा लाभ उठा सकें।

क्रेडिट: कोलाब (प्रो) का उपयोग करने वालों के लिए: निष्क्रियता के कारण सत्र को रोकने से रोकना


मुझे संदेह है कि आप इसे एक अलग धागे में भी
रखना चाहेंगे

@FalconUA, कल रात मैंने अपने पीसी पर चल रहे कोलाब को छोड़ दिया और जब मैं सुबह उठा, तो मैंने पाया कि यह अभी भी चल रहा है। मुझे लगता है कि स्क्रिप्ट अच्छी तरह से काम करती है, लेकिन मुझे थ्रेड के बारे में कुछ चेतावनी मिली है, आप सही हैं।
सिंग्रिनम

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.