From b84a92f67a88854fa6c495ec8b0e6ab2a2e8816a Mon Sep 17 00:00:00 2001 From: lichen <770918727@qq.com> Date: Thu, 2 Jun 2022 16:23:27 +0800 Subject: [PATCH] update --- __pycache__/train.cpython-37.pyc | Bin 0 -> 11624 bytes ieemoo-ai-isempty.py | 59 ++++++++++++++++--------------- init.sh | 0 requirements.txt | 0 start.sh | 0 stop.sh | 0 train.py | 8 +++-- utils/logging.json | 46 ++++++++++++++++++++++++ 8 files changed, 82 insertions(+), 31 deletions(-) create mode 100644 __pycache__/train.cpython-37.pyc mode change 100644 => 100755 ieemoo-ai-isempty.py mode change 100644 => 100755 init.sh mode change 100644 => 100755 requirements.txt mode change 100644 => 100755 start.sh mode change 100644 => 100755 stop.sh create mode 100644 utils/logging.json diff --git a/__pycache__/train.cpython-37.pyc b/__pycache__/train.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..315ba3f6e573e63db97805ce655d949df33492b7 GIT binary patch literal 11624 zcmbtaOLN>-b_USsC!5V?^C9X*LAEKWC9|oApBjy9J#5(?iIOGR^1$Okz`kG;P4vST zXi0?8dC8NRN|kE7NTsq$HLJ2nvdAinS!9t#7Fi^J0F_ND*{G65DwWD&DwX6r2i?sk zN0UvO#KpY__kGVj=R4=#>(kQ(1;0P}@4FidR~6--C^7o!h`f)-KdUN=P=x9!E!9+8 znyIx?W=bWR=IN%+@3fibcgD={J8Ne7oip?NE|>+pQ{GgoXcmWMr_E{pR%*?dWv1!g zY-`q><#^hwwC2n?j%U32)`GdvS~M3qo%Ig2mdvHrVe>GjbKa5GQS&Ir^WL%6ar3yU zIQn4OIkBsn#w|q@#MHNnm~u`&OPQ~TqL}_xF<%uWF@yJOqAX_dUJ(^BhxaKlFBb4V zEf&Qgyw8XwaTxEaI3kYXeO4S3$MHVroDj>~+IOlv<(zw_pmptmQa$m4X0V!yXY38X z&0AK!X_uk(*=+3Iy~yKTpo59(Wv=y}eF zdZXimKBA)XLc<9xuVV|;ti~luJ?ThKSiT!NbsEIzmqO%yJpNe(j$*1pF*Tu@DWQoJ zCPEjwNaLNxG-pNbTNO-@$5c$k#cPipX*ZlZ4*DNnxY22KF(JNTw}s&c9f@eLC}TYp1coltp(C{+qLdaoU<&q?FN>0oGPbQ6g6C!?0IdJTwFgic|LEMx63{tvFrp^xEjNEaNkGI0-70oIzmV z@pA|iHN$^lWnag5%rB_&I;|4@=uMlKr|KO^7!Vm-DDWE>duaf&~QCRMKDi6szq6{f;xeuCN2=6uyqTUQtVGIJd9sNiM9M zT%tO&v<_{%xm>2P)WqsYVz2TRvWr^3%6x+@*wn;FmEa6JD&Tk(vKO^*KB zb?~oU-&v)06IPNZCtKXNIy6NIBlopHrL{nqYU)CLuBl3-Me1>-4=Vbi5sPb`ZWWTY z?seKutP9r<%!2KC7JAmJJ7(@azwdU<)Pv9NKm=t1r|oxSoN0sk>%OVU;9$q6lCl)Gme?6b4g*b5n}ONYEGhV0BfUwow_GYJ=j&)l$e0c`7n$z3~ zE9h91(<~>+y*`a#Xh=ha26s1;Rt3AC}q$sm!%!?RC18MBWq zdsyl7wvAMa<~xOV3U9E`wkFRCt*^D)oK7KqS?EarnA2&bKM@(E*EyX<+7vmYuW~w% zbW;?Nu5o$_=};7rUgq>P(!VcCNS8Q0gY+MXGB_Yj0;ib~vtVGQnH81i>3%9o4RS$# zPyl6WSKU>?-b%A5lM z%txq&>6BiGz-P!q@x>?&uHzP>)Fy47L+f$z#%I^9i|5bdxp3jd-(n);RNa;@{)S@N zw!Ps>;k)OsW#g3SG+sOt$Lf4$g zbLjj!EMyt~aw%m5ZVs*zH6>8t~!$oK*D5ZA8 z=-Lvj3H9lNsl%m*oxt{tdn4jyBfoO7c46~QbwTE-{lbtPce+lT_Pd@75#f8Ta4bJ? zx^Whg*@l{ww9U<&+iI}7m)9woCp2Jf%1$fR+TB>EqzSBo?C6Xmc&C&n(%hC@qp~wx zc4Gf%K_|`#=doLN;xel_Yi}s>JjzItH*tn=j2%=n@*>rfsdw6&ZbM$9479=IEg~0a z+PM6$h~6}Y)9caz{3{3)tpLfDLzq#2{iAD(S_R+Bc#6nfMp#niZImDHI1=AuMY@bc z0R1ksZ%JgUyUI=FnF@Y{N)@T2q%QRJeMM>UeR>EUM9Nq5l(nfyh)F8`Il#-;+6caA z=CpLa?zzzCRzqUi(-^ShLGNg_^Re1JAUS@SztV8p&eN{E>QWO)SHo8i&U5XG*Qwi{ zf3>!k|NZMTP$#U?(9AW1s zJ5*~-C(HX^eB=9WLF%$D#NoMks2fqepku{%kZm*}Hy) z*Q3O0fmUW_94kk9(gx?4MVrSa(v_%^q=qY%fl>GGk=8se=AufZi}~j%%y$Kwd|^FY zK1)C2ey_~}`g0rN)h0X6;1A)_h|+GKExj8@iAGE@l=DWW))anW)omS1L+QONy1lgfyJc-akI@5 z270hj7*-zt? z=d_XNcAd5$y%^Z_Eg%pGERyuy9hPbU1dvC>1=8&jM~4HMUvrh<_S9t;whSzp^Yysd;vVcSV3X$oBfq~5& z<+e5fiFJk$=?yzT-_@tFy2HTO4SX{{u2&k=gWPB>%px^7O0oPMF&yz)oW^HY^bqye z5x~sV3VIIWS64OuD&X!PxjJVM47QY@~?^a^xP(t`|(?(D86($8VrAV&^Q{s>B1xuEbf zAOHyE6l|KQK~ZFaX+o%sLn)m_S|6rM&6y^wq`~YiwOSEW&z#6V*ZXP2=KC3h3!(r~ z{HFo%D^iC@5I#@!v+Z)Qw4cJQ0WG7S)Xp^3FmAPkRBoJ_p%k9{d@|bdb_$|R4@%9$ zgCo02TNAVM338^IDwLDTqNhhmnFYsajCdc1vdf7%j5gmd1j~bEsF|tnw5NZCoF_P^ z0c8ijnV?ysSYC}7gI8GD9TH35=A!aY*_ER* zzRvb5P;s+SXPahN+zCe*to)YKTSHmz5zFeWX&5PM>9Xy{jFgyQ}VZi(%@}?4R~FHcYa2ILxbg>f0phq0!A1Kj2NzW1}!~}3en=Wf><+n zm-0U&URngl5O%<@&9yUCVra!WVSk~Vmcd6#Zo^I!)v@A37;=9 zWhGjQrj`_O>Zp>8LKuJpr^8u;O*QsovOQ!#wUSKKG3P)d23BX=ghkcxtE!pB zn~bS&o-He5z1M;}6l%}-KIy#*Wa0r@M#d0}X9XTC7jj4u*oQT;yv z8Qh(pQ}IU>d_lnv5sZzT|2Nu_CaN2$KXzG;@zy`!%NTF*oV^5Zq3D;?D;gu>Kf)_q z*&F4Gz%UUof*Or80bOB%>s%vUj!F74)k1(E%nj*sJzUxVTHqxh52oRFj7?htVQq$o zInzr&RjyMZS`I2i?ugBB`UAN4N8LI(@>z@s#zUNRa7MQbXKeL-X;W{`B8YP>d)vXr z@Fh7=CHcGLISO8|nXrlNm}VA- zr}WlMd5S-6eD|HHYwPqz@vaHUNg60*SE2$MdI<^qz@bP zA>9jH&o^i4p4(**YPI1~vEZ4spYEk)Kn2LoO+aOvie~r>NSXzPZw`)OcBDgD2sp9- zk-gUk!6%(e;Oqj-pqM9IG|;ZJ8QnxNAh zaUiWCdtxPI7G_M66GeVafuw-PL4Z*{rr-$z60E*2$!Ev#Q|=J4lyrn-3h}0y1N2U6 zq^&pFhP(rxf$$f2dlq%v~2G%4jn)s3`S~*1sv&7z|WnfYGnh>WD2MoW8 zTD1~TYYE{5UPZlxW#`G$%Oz17IJSb8D(Vv2ET~7=1wkm7%Oe+gtAKDR%`^%L4NK}f zF%tiPY8CPW-oWD*Qi&f1n2Eft8hNkC9l;2I(rJ+)Hv_o_$SiNbK_R9^>A4QAP2XpN z6rGKZ^W%J!F&@rE8)?LsCh{IeUZ5s%Y+U*{D9hr+1jP_1L3>5KI?nT&SP67-YJzfF zoB^deK{+eVf%5tUWmVKbS(~7o7Z-xGxHv(%B;Ek!%?Zj|;%$_AXM*ysxGcWc&=6jk z7|Hj=RpfhbBH#Ps8tS?}LAik(H^m1NWBU-4TjHY$%EzF5B7QJIxh?L9b#Zq*pZ72u zpNjhvIUb;$H^jpU%4eW_E*?!#zCfuT3Uh+;C0hEC_-aHMWU%6@_%ZxxYBPrim>%Z> z6f20EjFayXrU|B+)8r%qYJFW;umyeth)N4);LV^fEPUPfmVu+8-i*=yH~&wM}-_+43ao9y=?=t0u6F=BomJ28QRd?6>YkfF%zf@YT)l2xcxx29bTNtD z9@B1HBicvSg*U>5q*sq^=>o~osael=YGHYGb;7w%__Ttvx4>T;HBf7J!|?2*Ek`<3 z$cMtj;AqbF${EO<9L)I`uKX!Y1$8<7cP)CnQSB} ziFw#N!wYk@wImh3{ScQ5k~jdS#HoKr?if$F-+QNVzVXEMJY&N#$X$Y?QtB^vl{?ML zQdnIbosqbI4cHaVz+FYRI>_Bes5iuj4kD5l@6#eJCrEk%`O-vjUSh3qc6F7t?jDkP zLAL%DxRhB+U#RT2iO*&n}fAbaw)S)jGjB_{0J0$j+!eqLJI) z6MKibAEg}RgR?9tW`ij(g;1EhM}}unwQy#2bstJ<{9^eh|MKZC{`kG{6`FFoM&ZJC z8RanuNilx_W!1vc>guGilA!eCkJx@Ogk$d*?xyhs*Fm~nkML&;Jc)fV#$fLIfJx!G zWPU*1fWbjqc-TFI9ap$f(jilXJg7Wj6S%F92?OH5hO%XN;-k(J%FEw*xcj=Dba%pr za{q(Y|4jnd`&!*=?!dSc1B`~x6SohI5!A!)-`)!=ckHLe2*DbJ+_={hjz}^l!*hEC zp3n)%xiguTZmjP%tz3#$79nN-g zZNncLT^Ky!D+b*Twh{)*h9J#8Sza~_#00gjB?V#n`F@RhxY@n%7U4XUumah0!nYw< zz;)OoERT!}Z>?^)fw76b9}tJv`R)^#3@i+3fR(>=k#aybW^88uM8-gjQQa0mr{#h9 zJyW}TG5q#J>^`DjHm-G@r^dBA_l$j3E@#Co!M#q#sM|KaJbm~4>DP_ZcQ0^w5g}b% zI(_%j>91-J90#lu*nr*!`nMGX@LI2}wI92}wQCJG*y?T6+|HVf#@6gsx3(3uJlenn zRoQ9lgnxb;af2MVG*=ilE|JL2V{94p(*TD%(ye2raXO8I+?|?nw~dVfSuIGIwUcac z8B@`Rn8I4&ym4lzR+0-;)yu~42*IFsM{U&#_uwZ8Tr}0~JW00E#mm%EfCeXXCe_pm zB(4seRu6d?EVg)?F2xw*?@6ITm_->rg3e-4(zCl^@d2d`9B6NK1kJ|Y+4KuC)xu*B z=&+i(i}`$5(BOK)^f&#rZ~F29a^JzUX29gvyrZCKqt zd?S2%p2YcZb4Z?WnT%v#@+H|ZkbpypNYv^paK_69PIZ09EM1cga8*0FM@eZG=>P#= znT9KAfs9kQY7?h<)0uQU?Bh}sU3TG4=LwfEMv*sZ4cKz0^M5{5;&m~Lu5a0ou`lSP zimpweLbEuzIPyMCKp{EnpbG->cZg8oTX=L+3DW?>wbSd$G}XO=ASRz#1KY%$+OU1M zeuJ+GnEJ=-AKo?fN7wGJvz2dVA$7@!kM)gC$1`=>Nr?@9o2q(-psJg6$c^zQrYjwX zC07mDB{TNR#Ci+Z%YfAP2^AwG7qUjYJU*NixMh4&!)J^6h8H{w}ub9ff_&kQ#YpGnSsL4M>Pw1)~_06)Xuba3m zx7iDNkfN3(50!+~r${mcshbjUT4rLQxL&iop`uoisTB)Oh4lN1@-|Lj0ve~MX7J~4-J zlzlhmump9+BJ$9|0>{N|zLO>CiXX3ioat=P4bS9!?mx<2kSbSldM=wQ literal 0 HcmV?d00001 diff --git a/ieemoo-ai-isempty.py b/ieemoo-ai-isempty.py old mode 100644 new mode 100755 index 26eb0ba..06c1248 --- a/ieemoo-ai-isempty.py +++ b/ieemoo-ai-isempty.py @@ -13,6 +13,23 @@ from torchvision import transforms from models.modeling import VisionTransformer, CONFIGS sys.path.insert(0, ".") +import logging.config +from skywalking import agent, config +SW_SERVER = os.environ.get('SW_AGENT_COLLECTOR_BACKEND_SERVICES') +SW_SERVICE_NAME = os.environ.get('SW_AGENT_NAME') +if SW_SERVER and SW_SERVICE_NAME: + config.init() #采集服务的地址,给自己的服务起个名称 + #config.init(collector="123.60.56.51:11800", service='ieemoo-ai-search') #采集服务的地址,给自己的服务起个名称 + agent.start() +def setup_logging(path): + if os.path.exists(path): + with open(path, 'r') as f: + config = json.load(f) + logging.config.dictConfig(config) + logger = logging.getLogger("root") + return logger +logger = setup_logging('utils/logging.json') + app = Flask(__name__) app.use_reloader=False @@ -34,7 +51,7 @@ class Predictor(object): def __init__(self, args): self.args = args self.args.device = torch.device("cuda" if torch.cuda.is_available() else "cpu") - print(self.args.device) + #print(self.args.device) self.args.nprocs = torch.cuda.device_count() self.cls_dict = {} self.num_classes = 0 @@ -49,7 +66,7 @@ class Predictor(object): config.split = self.args.split config.slide_step = self.args.slide_step model_name = os.path.basename(self.args.pretrained_model).replace("_checkpoint.bin", "") - print("use model_name: ", model_name) + #print("use model_name: ", model_name) self.num_classes = 5 self.cls_dict = {0: "noemp", 1: "yesemp", 2: "hard", 3: "fly", 4: "stack"} self.model = VisionTransformer(config, self.args.img_size, zero_head=True, num_classes=self.num_classes, smoothing_value=self.args.smoothing_value) @@ -67,7 +84,8 @@ class Predictor(object): def normal_predict(self, img_data, result): # img = Image.open(img_path) if img_data is None: - print('error, img data is None') + #print('error, img data is None') + logger.warning('error, img data is None') return result else: with torch.no_grad(): @@ -79,7 +97,7 @@ class Predictor(object): topN = torch.argsort(probs, dim=-1, descending=True).tolist() clas_ids = topN[0][0] clas_ids = 0 if 0==int(clas_ids) or 2 == int(clas_ids) or 3 == int(clas_ids) else 1 - print("cur_img result: class id: %d, score: %0.3f" % (clas_ids, probs[0, clas_ids].item())) + #print("cur_img result: class id: %d, score: %0.3f" % (clas_ids, probs[0, clas_ids].item())) result["success"] = "true" result["rst_cls"] = str(clas_ids) return result @@ -94,14 +112,15 @@ predictor = Predictor(args) @app.route("/isempty", methods=['POST']) def get_isempty(): start = time.time() - print('--------------------EmptyPredict-----------------') + #print('--------------------EmptyPredict-----------------') data = request.get_data() ip = request.remote_addr - print('------ ip = %s ------' % ip) + #print('------ ip = %s ------' % ip) + logger.info(ip) json_data = json.loads(data.decode("utf-8")) getdateend = time.time() - print('get date use time: {0:.2f}s'.format(getdateend - start)) + #print('get date use time: {0:.2f}s'.format(getdateend - start)) pic = json_data.get("pic") result = {"success": "false", @@ -113,29 +132,11 @@ def get_isempty(): img_src = cv2.imdecode(imgdata_np, cv2.IMREAD_COLOR) img_data = Image.fromarray(np.uint8(img_src)) result = predictor.normal_predict(img_data, result) # 1==empty, 0==nonEmpty - except: + except Exception as e: + logger.warning(e) return repr(result) - + logger.info(repr(result)) return repr(result) - if __name__ == "__main__": - app.run() -# http_server = WSGIServer(('0.0.0.0',8000), app) -# http_server.serve_forever() - - - - - - - - - - - - - - - - + app.run(host='192.168.1.142', port=8000) diff --git a/init.sh b/init.sh old mode 100644 new mode 100755 diff --git a/requirements.txt b/requirements.txt old mode 100644 new mode 100755 diff --git a/start.sh b/start.sh old mode 100644 new mode 100755 diff --git a/stop.sh b/stop.sh old mode 100644 new mode 100755 diff --git a/train.py b/train.py index fb444c7..bf63476 100755 --- a/train.py +++ b/train.py @@ -20,10 +20,11 @@ from models.modeling import VisionTransformer, CONFIGS from utils.scheduler import WarmupLinearSchedule, WarmupCosineSchedule from utils.data_utils import get_loader from utils.dist_util import get_world_size +import pdb logger = logging.getLogger(__name__) - +os.environ["CUDA_VISIBLE_DEVICES"] = "0,1,2" class AverageMeter(object): """Computes and stores the average and current value""" def __init__(self): @@ -92,12 +93,14 @@ def setup(args): if args.pretrained_model is not None: pretrained_model = torch.load(args.pretrained_model)['model'] model.load_state_dict(pretrained_model) - model.to(args.device) + #model.to(args.device) + #pdb.set_trace() num_params = count_parameters(model) logger.info("{}".format(config)) logger.info("Training parameters %s", args) logger.info("Total Parameter: \t%2.1fM" % num_params) + model = torch.nn.DataParallel(model, device_ids=[0,1]).cuda() return args, model @@ -351,6 +354,7 @@ def main(): device = torch.device("cuda" if torch.cuda.is_available() else "cpu") print('torch.cuda.device_count()>>>>>>>>>>>>>>>>>>>>>>>>>', torch.cuda.device_count()) args.n_gpu = torch.cuda.device_count() + print('torch.cuda.device_count()>>>>>>>>>>>>>>>>>>>>>>>>>', torch.cuda.device_count()) else: # Initializes the distributed backend which will take care of sychronizing nodes/GPUs torch.cuda.set_device(args.local_rank) device = torch.device("cuda", args.local_rank) diff --git a/utils/logging.json b/utils/logging.json new file mode 100644 index 0000000..886d62b --- /dev/null +++ b/utils/logging.json @@ -0,0 +1,46 @@ +{ + "version":1, + "disable_existing_loggers":false, + "formatters":{ + "simple":{ + "format":"%(asctime)s - %(module)s - %(thread)d - %(levelname)s : %(message)s" + } + }, + "handlers":{ + "console":{ + "class":"logging.StreamHandler", + "level":"DEBUG", + "formatter":"simple", + "stream":"ext://sys.stdout" + }, + "info_file_handler":{ + "class":"logging.handlers.RotatingFileHandler", + "level":"INFO", + "formatter":"simple", + "filename":"../log/ieemoo-ai-isempty-biz.log", + "maxBytes":10485760, + "backupCount":20, + "encoding":"utf8" + }, + "error_file_handler":{ + "class":"logging.handlers.RotatingFileHandler", + "level":"ERROR", + "formatter":"simple", + "filename":"../log/ieemoo-ai-isempty-biz.log", + "maxBytes":10485760, + "backupCount":20, + "encoding":"utf8" + } + }, + "loggers":{ + "my_module":{ + "level":"ERROR", + "handlers":["info_file_handler"], + "propagate":"no"} + }, + "root":{ + "level":"INFO", + "handlers":["console","info_file_handler","error_file_handler"] + } +} +