¼ÓÔØ8x8x8x.cnfÅäÖÃÎļþµÄ²½?Öè
Îļþ×¼±¸£ºÈ·±£8x8x8x.cnfÎļþµÄÄÚÈÝÒѾÕýÈ·±à?¼²¢±£´æ¡£ÎļþÓ¦¸Ã°üº¬ËùÓÐÐèÒªµÄ²ÎÊýÉèÖ᣼ÓÔØÎļþ£ºÔÚϵͳ»òÓ¦ÓóÌÐòÆô¶¯Ê±£¬Í¨¹ýÖ¸¶¨µÄÃüÁî»ò½Å±¾?¼ÓÔØÅäÖÃÎļþ¡£ÀýÈ磬ÔÚLinuxϵͳÖУ¬¿ÉÒÔʹÓÃsourceÃüÁî»òÕßÔÚÆô¶¯½Å±¾ÖмÓÔØÎļþ¡£
ÑéÖ¤¼ÓÔØ£º¼ÓÔØÍê³Éºó£¬¿ÉÒÔͨ¹ý¼ì²éϵͳ»òÓ¦ÓóÌÐòµÄÈÕÖ¾Îļþ£¬È·ÈÏÅäÖÃÊÇ·ñÕýÈ·¼ÓÔØ¡£
ythonʾÀý
importconfigparserimporttimeimportosconfig=configparser.ConfigParser()defload_config(config_file):globalconfigconfig.read(config_file)load_config('8x8x8x.cnf')defwatch_file(config_file):initial_mtime=os.path.getmtime(config_file)whileTrue:time.sleep(1)ifos.path.getmtime(config_file)>initial_mtime:load_config(config_file)initial_mtime=os.path.getmtime(config_file)watch_file('8x8x8x.cnf')whileTrue:#ʹÓÃÅäÖÃÏîdb_host=config.get('database','host')print(f"CurrentDatabaseHost:{db_host}")time.sleep(1)
avaʾÀý
importjava.util.Properties;importjava.io.FileInputStream;importjava.io.IOException;publicclassDynamicConfigLoader{privatestaticPropertiesprops=newProperties();static{try(FileInputStreamfis=newFileInputStream("8x8x8x.cnf")){props.load(fis);}catch(IOExceptione){e.printStackTrace();}}publicstaticvoidloadConfig(StringconfigFile){try(FileInputStreamfis=newFileInputStream(configFile)){props.load(fis);}catch(IOExceptione){e.printStackTrace();}}publicstaticvoidmain(Stringargs){while(true){//ÿ¸ôÒ»¶Îʱ¼äÖØÐ¼ÓÔØÅäÖÃÎļþloadConfig("8x8x8x.cnf");try{Thread.sleep(10000);}catch(InterruptedExceptione){e.printStackTrace();}//ʹÓÃÅäÖÃÏîStringdbHost=props.getProperty("database.host");System.out.println("CurrentDatabaseHost:"+dbHost);}}}
×¢ÒâÊÂÏî
ÔÚ¼ÓÔØºÍÓ¦ÓÃ8x8x8x.cnfÅäÖÃÎļþʱ£¬ÐèҪעÒâÒÔϼ¸µã£º
Îļþ¸ñʽºÍÓï·¨£ºÈ·±£ÅäÖÃÎļþµÄ¸ñʽºÍÓï·¨ÊÇÕýÈ·µÄ£¬·ñÔò¿ÉÄܵ¼ÖÂϵͳÎÞ·¨Õý³£¼ÓÔØÅäÖᣲÎÊýµ÷Õû£º²»Í¬µÄϵͳºÍÓ¦ÓóÌÐò¶Ô²Î?ÊýµÄÒªÇó¿ÉÄܲ»Í¬£¬ÐèÒª¸ù¾Ýʵ¼ÊÇé¿ö½øÐе÷Õû¡£±¸·Ý£ºÔÚÐ޸ĺͼÓÔØÅäÖÃÎļþǰ£¬×îºÃÏȱ¸·ÝÔÓеÄÅäÖÃÎļþ£¬ÒÔ·À³öÏÖÎÊÌâʱ¿ÉÒÔ»Ö¸´¡£
³ÖÐøµÄ¼¼Êõ´´ÐÂ
8x8x8xcnf²»½öÔÚµ±Ç°µÄÓ¦ÓÃÖбíÏÖ׿Խ£¬Æä³ÖÐøµÄ¼¼Êõ´´Ð¸üÊÇÁîÈËÆÚ´ý?¡£8x8x8xcnf½«²»¶ÏÍÆ¶¯¼¼ÊõµÄÇ°ÑØ£¬ÎªÓû§´øÀ´¸ü¶àµÄ´´ÐºͿÉÄÜÐÔ¡£ÎÞÂÛÊÇеļܹ¹Éè¼Æ£¬»¹ÊÇ×îеÄËã·¨ÓÅ»¯£¬8x8x8xcnf¶¼½«½ô¸ú¿Æ¼¼·¢Õ¹µÄÇ°ÑØ£¬ÎªÓû§Ìṩ×îÇ°ÑØµÄ¸ßЧÔËËã½â¾ö·½°¸¡£
ʵ²â?ÓëÓÅ»¯½ø½×
ΪÁËÑéÖ¤¸ß¼¶ÓÅ»¯µÄЧ¹û£¬ÎÒÃǽøÐÐÁ˽øÒ»²½µÄʵ²â£¬Ö÷Òª°üÀ¨ÒÔϼ¸¸ö·½Ã棺
¶¯Ì¬µ÷Õû²âÊÔ£ºÔÚϵͳ¸ºÔر仯µÄÇé¿öÏ£¬²âÊÔ¶¯Ì¬µ÷Õû»úÖÆµÄЧ¹û£¬¹Û²ìϵͳÊÇ·ñÄܹ»ÊµÊ±ÏìÓ¦²¢?ÓÅ»¯ÐÔÄÜ¡£×ÔÊÊÓ¦µ÷Õû²âÊÔ£ºÍ¨¹ý»úÆ÷ѧϰËã·¨½øÐÐ×ÔÊÊÓ¦µ÷Õû£¬²âÊÔÆä¶ÔϵͳÐÔÄܵÄÌáÉýЧ¹û£¬²¢±È½ÏÓ봫ͳ¾²Ì¬ÅäÖõIJîÒì¡£¸ß¼¶¼à¿Ø²âÊÔ£ºÊ¹Óø߼¶¼à¿Ø¹¤¾ß£¬¶Ôϵͳ½øÐÐʵʱ¼à¿Ø£¬¹Û²ìÊÇ·ñÄܹ»¼°Ê±·¢ÏÖ²¢´¦ÀíÒì³£Çé¿ö¡£
΢µ÷£¨Fine-tuning£©
ͨ¹ýÔÚС¹æÄ£Êý¾Ý¼¯ÉϽøÐÐ΢µ÷£¬¿ÉÒÔ½øÒ»²½ÊÊÓ¦Á¿»¯ºóµÄÄ£ÐÍ£¬Ìá¸ßÆäÐÔÄÜ¡£
fromtorch.optimimportAdamWoptimizer=AdamW(quantized_model.parameters(),lr=1e-4)#ѵÁ·Ñ»·forepochinrange(num_epochs):forbatchintrain_dataloader:inputs,labels=batchoptimizer.zero_grad()outputs=quantized_model(inputs)loss=loss_fn(outputs,labels)loss.backward()optimizer.step()
ÈÕÖ¾¼Ç¼ºÍ¼à¿ØÓÅ»¯
ÈÕÖ¾Îļþ¹ÜÀí£ºÍ¨¹ýÅäÖÃÎļþÉèÖÃÈÕÖ¾ÎļþµÄ´óСºÍ±£Áô²ßÂÔ£¬±ÜÃâÈÕÖ¾Îļþ¹ý´óµ¼ÖµĴÅÅÌÕ¼ÓÃÎÊÌâ¡£ÉèÖÃÈÕÖ¾ÎļþµÄ±£´æÂ·¾¶ºÍȨÏÞ£¬È·±£ÈÕÖ¾ÎļþµÄ°²È«ÐԺͿɷÃÎÊÐÔ¡£ÊµÊ±¼à¿Ø£ºÊ¹Óø߼¶¼à¿Ø¹¤¾ß£¬ÈçPrometheus¡¢GrafanaµÈ£¬½áºÏ8x8x8x.cnfÅäÖÃÎļþÖÐµÄ¼à¿Ø²ÎÊý£¬ÊµÏÖ¶ÔϵͳµÄʵʱ¼à¿ØºÍ¸æ¾¯¡£
У¶Ô£ºÑîÀ½(1C0m4pJyqZtPma0S7t9ZFfz4hTykKag)


