Best Python code snippet using playwright-python
TestSuite_hotplug_mp.py
Source:TestSuite_hotplug_mp.py  
...66            if flg_exist == 1:67                self.verify(dev in out, "Fail that don't have the device!")68            if flg_exist == 0:69                self.verify(dev not in out, "Fail that have the device!")70    def attach_detach(self, process="pri", is_dev=1, opt_plug="plugin", flg_loop=0, dev="0000:00:00.0"):71        """72        Attach or detach physical/virtual device from primary/secondary73        process.74        process: define primary or secondary process.75        is_dev: define physical device as 1, virtual device as 0.76        opt_plug: define plug options as below77                  plugin: plug in device78                  plugout: plug out device79                  hotplug: plug in then plug out device from primary or80                           secondary process81                  crossplug: plug in from primary process then plug out from82                             secondary process, or plug in from secondary83                             process then plug out from primary84        flg_loop: define loop test flag85        dev: define physical device PCI "0000:00:00.0" or virtual device86             "net_af_packet"87        """88        if opt_plug == "plugin":89            self.verify_devlist(dev, flg_exist=0)90            for i in range(test_loop):91                if process == "pri":92                    if is_dev == 0:93                        self.session_pri.send_expect(94                            "attach %s,iface=%s"95                            % (dev, self.intf0), "example>", 100)96                    else:97                        self.session_pri.send_expect(98                            "attach %s" % dev, "example>", 100)99                if process == "sec":100                    if is_dev == 0:101                        self.session_sec_1.send_expect(102                            "attach %s,iface=%s"103                            % (dev, self.intf0), "example>", 100)104                    else:105                        self.session_sec_1.send_expect(106                            "attach %s" % dev, "example>", 100)107                if flg_loop == 0:108                    break109            self.verify_devlist(dev, flg_exist=1)110        if opt_plug == "plugout":111            self.verify_devlist(dev, flg_exist=1)112            for i in range(test_loop):113                if process == "pri":114                    self.session_pri.send_expect(115                        "detach %s" % dev, "example>", 100)116                if process == "sec":117                    self.session_sec_1.send_expect(118                        "detach %s" % dev, "example>", 100)119                if flg_loop == 0:120                    break121            self.verify_devlist(dev, flg_exist=0)122    def attach_detach_dev(self, process="pri", opt_plug="plugin", flg_loop=0, dev="0000:00:00.0"):123        """124        Attach or detach physical device from primary/secondary process.125        """126        # Scan port status when example setup, list ports that have been127        #  bound to pmd128        if opt_plug in ["plugin", "hotplug", "crossplug"]:129            self.multi_process_setup()130            self.dut.bind_interfaces_linux(self.drivername)131        elif opt_plug == "plugout":132            self.dut.bind_interfaces_linux(self.drivername)133            self.multi_process_setup()134        if opt_plug in ["plugin", "plugout"]:135            self.attach_detach(process, 1, opt_plug, flg_loop, dev)136        elif opt_plug in ["hotplug", "crossplug"]:137            for i in range(test_loop):138                self.attach_detach(process, 1, "plugin", flg_loop, dev)139                if opt_plug == "crossplug":140                    if process == "pri":141                        cross_proc = "sec"142                    elif process == "sec":143                        cross_proc = "pri"144                    self.attach_detach(cross_proc, 1, "plugout", flg_loop, dev)145                else:146                    self.attach_detach(process, 1, "plugout", flg_loop, dev)147        self.multi_process_quit()148        self.dut.bind_interfaces_linux(self.kdriver)149    def attach_detach_vdev(self, process="pri", opt_plug="plugin", flg_loop=0, dev="net_af_packet"):150        """151        Attach or detach virtual device from primary/secondary process.152        Check port interface is at link up status before hotplug test.153        If link not up, may have below error:154        rte_pmd_init_internals(): net_af_packet: ioctl failed (SIOCGIFINDEX)155        EAL: Driver cannot attach the device (net_af_packet)156        """157        self.dut.send_expect("ifconfig %s up" % self.intf0, "#")158        time.sleep(5)159        out = self.dut.send_expect("ethtool %s" % self.intf0, "#")160        self.verify("Link detected: yes" in out, "Wrong link status")161        self.multi_process_setup()162        for i in range(test_loop):163            self.attach_detach(process, 0, "plugin", flg_loop, dev)164            if opt_plug in ["plugout", "hotplug", "crossplug"]:165                if opt_plug == "crossplug":166                    if process == "pri":167                        cross_proc = "sec"168                    elif process == "sec":169                        cross_proc = "pri"170                    self.attach_detach(cross_proc, 0, "plugout", flg_loop, dev)171                else:172                    self.attach_detach(process, 0, "plugout", flg_loop, dev)173            if opt_plug == "plugin" or opt_plug == "plugout":174                break175        self.multi_process_quit()176    def test_attach_dev_primary(self):177        """178        Attach physical device from primary.179        """180        self.attach_detach_dev("pri", "plugin", 0, self.pci0)181    def test_attach_dev_secondary(self):182        """183        Attach physical device from secondary.184        """185        self.attach_detach_dev("sec", "plugin", 0, self.pci0)186    def test_detach_dev_primary(self):...losser.py
Source:losser.py  
...29#30#             total_loss += F.nll_loss(multi_predict_log_soft_max, multi_label)31#32#33#         binary_predict_detach = F.softmax(binary_predict.detach(),dim=1)34#         multi_predict_detach = F.softmax(multi_predict.detach(),dim=1)35#36#         accuracy_ratio = self.calculate_recall_precision(binary_predict_detach, binary_label)37#38#         return total_loss, accuracy_ratio39#40#     def calculate_recall_precision(self, predict_detach, label):41#42#         predict_detach_argmax = torch.argmax(predict_detach, dim=1).long()43#44#         accuracy_number = torch.sum(predict_detach_argmax == label)45#46#         accuracy_ratio = accuracy_number/len(predict_detach)47#48#         return accuracy_ratio49# class Loss(nn.Module):50#51#     def __init__(self, args):52#53#         super(Loss, self).__init__()54#55#         self.args = args56#         self.calculate_multi_label_loss = self.args.calculate_multi_label_loss57#58#     def forward(self, binary_predict, multi_predict, multi_label, train=True):59#60#61#         # binary_predict_log_soft_max = F.log_softmax(binary_predict, dim=1)62#         multi_predict_log_soft_max = F.log_softmax(multi_predict, dim=1)63#64#         binary_predict_soft_max = F.softmax(binary_predict, dim=1)65#         binary_predict_log_soft_max = torch.log(binary_predict_soft_max)66#67#         binary_predict_log_soft_max = binary_predict_log_soft_max.view(binary_predict_log_soft_max.size(0), -1)68#         multi_predict_log_soft_max = multi_predict_log_soft_max.view(multi_predict_log_soft_max.size(0),-1)69#         multi_label   = multi_label.view(-1)70#71#         binary_label = torch.where(multi_label > 0, torch.full_like(multi_label, 1), multi_label).long()72#73#         weight = binary_predict_soft_max74#75#         weight[:, 0] = torch.pow(weight[:,0],2.0)76#         weight[:, 1] = torch.pow(1- weight[:, 1], 2.0)77#78#         binary_predict_log_soft_max  = binary_predict_log_soft_max * weight79#80#         total_loss = F.nll_loss(binary_predict_log_soft_max, binary_label)81#82#         if self.calculate_multi_label_loss == True:83#84#             total_loss += F.nll_loss(multi_predict_log_soft_max, multi_label)85#86#87#         binary_predict_detach = F.softmax(binary_predict.detach(),dim=1)88#         multi_predict_detach = F.softmax(multi_predict.detach(),dim=1)89#90#         binary_accuracy_ratio = self.calculate_recall_precision(binary_predict_detach, binary_label)91#92#         # print("**********************************************************************")93#         # print("label ", binary_label)94#         # print("pre " , binary_predict_detach)95#         # print("precision", binary_accuracy_ratio)96#         # print("loss ", total_loss)97#98#         return total_loss, binary_accuracy_ratio99#100#     def calculate_recall_precision(self, predict_detach, label):101#102#         predict_detach_argmax = torch.argmax(predict_detach, dim=1).long()103#104#         accuracy_number = torch.sum(predict_detach_argmax == label)105#106#         positive_accuracy =  torch.sum((predict_detach_argmax == 1)*(label==1))107#         negative_accuracy =  torch.sum((predict_detach_argmax == 0)*(label==0))108#109#         positive_accuracy_number = torch.sum(label)110#         negative_accuracy_number = len(label) - positive_accuracy_number111#112#         if positive_accuracy_number != 0:113#114#             positive_accuracy = positive_accuracy.float() / positive_accuracy_number115#116#         else:117#118#             positive_accuracy = torch.from_numpy(np.array([np.nan],dtype=np.float32)).cuda()[0]119#120#121#         if negative_accuracy_number != 0:122#123#             negative_accuracy = negative_accuracy.float() / negative_accuracy_number124#125#         else:126#127#             negative_accuracy = torch.from_numpy(np.array([np.nan],dtype=np.float32)).cuda()[0]128#129#130#         accuracy_ratio = accuracy_number.float()/len(predict_detach)131#132#         return accuracy_ratio, positive_accuracy, negative_accuracy133class Loss(nn.Module):134    def __init__(self, args):135        super(Loss, self).__init__()136        self.args = args137        self.calculate_multi_label_loss = self.args.calculate_multi_label_loss138    def forward(self, binary_predict, multi_predict, multi_label, train=True, binary_out2=None):139        #print(multi_label.cpu().numpy())140        binary_predict_soft_max = F.softmax(binary_predict, dim=1)141        binary_predict_log_soft_max = torch.log(binary_predict_soft_max)142        binary_predict_log_soft_max = binary_predict_log_soft_max.view(binary_predict_log_soft_max.size(0), -1)143        binary_label = torch.sum(multi_label, dim=1).long()144        weight = torch.pow(1 - binary_predict_soft_max, 2.0)145        binary_loss = F.nll_loss(binary_predict_log_soft_max, binary_label)146        binary_predict_detach = binary_predict_soft_max.detach()147        binary_accuracy_ratio = self.calculate_recall_precision(binary_predict_detach, binary_label)148        wrong_index = self.calculate_wrong_crop_image(binary_predict_detach, binary_label)149        '''150        multi_predict_p = F.sigmoid(multi_predict)151        multi_predict_detach = multi_predict_p.detach()152        multi_predict_p = torch.transpose(multi_predict_p, 0, 1)153        multi_predict_p_r = (torch.max(multi_predict_p, dim=0, keepdim=True)[0] - 0.00001) * torch.ones_like(multi_predict_p)154        multi_predict_p = torch.stack([multi_predict_p_r, multi_predict_p], dim=-1)155        multi_label_T = torch.transpose(multi_label, 0, 1)156        multi_loss = - 5 * F.logsigmoid(multi_predict) * multi_label.float() + (- F.logsigmoid(-multi_predict) * (1 - multi_label.float()))157        total_loss = torch.sum(multi_loss) / multi_loss.shape[0]  #+ binary_loss158        '''159        multi_predict_p = F.softmax(multi_predict, dim=1)160        multi_predict_detach = multi_predict_p.detach()161        multi_predict_p = torch.transpose(multi_predict_p, 0, 1)162        multi_predict_p = torch.stack([1 - multi_predict_p, multi_predict_p], dim=-1)163        multi_label_T = torch.transpose(multi_label, 0, 1)164        multiple_loss = F.nll_loss(F.log_softmax(multi_predict, dim=1), torch.argmax(multi_label, dim=1), reduction='none')165        multiple_loss = torch.sum(multiple_loss * binary_label.float()) / (torch.sum(binary_label.float()) + 1e-4)166        multi_accuracy_ratio = []167        for multi_predict_p_x, multi_label_T_x in zip(multi_predict_p, multi_label_T):168            multi_accuracy_ratio.append(self.calculate_recall_precision(multi_predict_p_x, multi_label_T_x))169        total_loss = multiple_loss170        return total_loss, [binary_accuracy_ratio] + multi_accuracy_ratio, wrong_index, multi_predict_detach171    def calculate_wrong_crop_image(self, binary_predict_detach, binary_label):172        predict_detach_argmax = torch.argmax(binary_predict_detach, dim=1).long()173        wrong_index = (predict_detach_argmax != binary_label)174        return wrong_index...IQAloss.py
Source:IQAloss.py  
...44def monotonicity_regularization(y_pred, y, detach=False):45    """monotonicity regularization"""46    if y_pred.size(0) > 1:  #47        ranking_loss = F.relu((y_pred-y_pred.t()) * torch.sign((y.t()-y)))48        scale = 1 + torch.max(ranking_loss.detach()) if detach else 1 + torch.max(ranking_loss)49        return torch.sum(ranking_loss) / y_pred.size(0) / (y_pred.size(0)-1) / scale50    else:51        return F.l1_loss(y_pred, y_pred.detach())  # 0 for batch with single sample.52def linearity_induced_loss(y_pred, y, alpha=[1, 1], detach=False):53    """linearity-induced loss, actually MSE loss with z-score normalization"""54    if y_pred.size(0) > 1:  # z-score normalization: (x-m(x))/sigma(x).55        sigma_hat, m_hat = torch.std_mean(y_pred.detach(), unbiased=False) if detach else torch.std_mean(y_pred, unbiased=False)56        y_pred = (y_pred - m_hat) / (sigma_hat + eps)57        sigma, m = torch.std_mean(y, unbiased=False)58        y = (y - m) / (sigma + eps)59        scale = 460        loss0, loss1 = 0, 061        if alpha[0] > 0:62            loss0 = F.mse_loss(y_pred, y) / scale  # ~ 1 - rho, rho is PLCC63        if alpha[1] > 0:64            rho = torch.mean(y_pred * y)65            loss1 = F.mse_loss(rho * y_pred, y) / scale  # 1 - rho ** 2 = 1 - R^2, R^2 is Coefficient of determination66        # loss0 =  (1 - torch.cosine_similarity(y_pred.t() - torch.mean(y_pred), y.t() - torch.mean(y))[0]) / 267        # yp = y_pred.detach() if detach else y_pred68        # ones = torch.ones_like(yp.detach())69        # yp1 = torch.cat((yp, ones), dim=1)70        # h = torch.mm(torch.inverse(torch.mm(yp1.t(), yp1)), torch.mm(yp1.t(), y))71        # err = torch.pow(torch.mm(torch.cat((y_pred, ones), dim=1), h) - y, 2)  #72        # normalization = 1 + torch.max(err.detach()) if detach else 1 + torch.max(err)73        # loss1 = torch.mean(err) / normalization74        return (alpha[0] * loss0 + alpha[1] * loss1) / (alpha[0] + alpha[1])75    else:76        return F.l1_loss(y_pred, y_pred.detach())  # 0 for batch with single sample.77def norm_loss_with_normalization(y_pred, y, alpha=[1, 1], p=2, q=2, detach=False, exponent=True):78    """norm_loss_with_normalization: norm-in-norm"""79    N = y_pred.size(0)80    if N > 1:  81        m_hat = torch.mean(y_pred.detach()) if detach else torch.mean(y_pred)82        y_pred = y_pred - m_hat  # very important!!83        normalization = torch.norm(y_pred.detach(), p=q) if detach else torch.norm(y_pred, p=q)  # Actually, z-score normalization is related to q = 2.84        # print('bhat = {}'.format(normalization.item()))85        y_pred = y_pred / (eps + normalization)  # very important!86        y = y - torch.mean(y)87        y = y / (eps + torch.norm(y, p=q))88        scale = np.power(2, max(1,1./q)) * np.power(N, max(0,1./p-1./q)) # p, q>089        loss0, loss1 = 0, 090        if alpha[0] > 0:91            err = y_pred - y92            if p < 1:  # avoid gradient explosion when 0<=p<1; and avoid vanishing gradient problem when p < 093                err += eps 94            loss0 = torch.norm(err, p=p) / scale  # Actually, p=q=2 is related to PLCC95            loss0 = torch.pow(loss0, p) if exponent else loss0 #96        if alpha[1] > 0:97            rho =  torch.cosine_similarity(y_pred.t(), y.t())  #  98            err = rho * y_pred - y99            if p < 1:  # avoid gradient explosion when 0<=p<1; and avoid vanishing gradient problem when p < 0100                err += eps 101            loss1 = torch.norm(err, p=p) / scale  # Actually, p=q=2 is related to LSR102            loss1 = torch.pow(loss1, p) if exponent else loss1 #  #  103        # by = normalization.detach()104        # e0 = err.detach().view(-1)105        # ones = torch.ones_like(e0)106        # yhat = y_pred.detach().view(-1)107        # g0 = torch.norm(e0, p=p) / torch.pow(torch.norm(e0, p=p) + eps, p) * torch.pow(torch.abs(e0), p-1) * e0 / (torch.abs(e0) + eps)108        # ga = -ones / N * torch.dot(g0, ones)109        # gg0 = torch.dot(g0, g0)110        # gga = torch.dot(g0+ga, g0+ga)111        # print("by: {} without a and b: {} with a: {}".format(normalization, gg0, gga))112        # gb = -torch.pow(torch.abs(yhat), q-1) * yhat / (torch.abs(yhat) + eps) * torch.dot(g0, yhat)113        # gab = torch.dot(ones, torch.pow(torch.abs(yhat), q-1) * yhat / (torch.abs(yhat) + eps)) / N * torch.dot(g0, yhat)114        # ggb = torch.dot(g0+gb, g0+gb)115        # ggab = torch.dot(g0+ga+gb+gab, g0+ga+gb+gab)116        # print("by: {} without a and b: {} with a: {} with b: {} with a and b: {}".format(normalization, gg0, gga, ggb, ggab))117        return (alpha[0] * loss0 + alpha[1] * loss1) / (alpha[0] + alpha[1])118    else:119        return F.l1_loss(y_pred, y_pred.detach())  # 0 for batch with single sample.120def norm_loss_with_min_max_normalization(y_pred, y, alpha=[1, 1], detach=False):121    if y_pred.size(0) > 1:  122        m_hat = torch.min(y_pred.detach()) if detach else torch.min(y_pred)123        M_hat = torch.max(y_pred.detach()) if detach else torch.max(y_pred)124        y_pred = (y_pred - m_hat) / (eps + M_hat - m_hat)  # min-max normalization125        y = (y - torch.min(y)) / (eps + torch.max(y) - torch.min(y))126        loss0, loss1 = 0, 0127        if alpha[0] > 0:128            loss0 = F.mse_loss(y_pred, y)129        if alpha[1] > 0:130            rho =  torch.cosine_similarity(y_pred.t(), y.t())  #131            loss1 = F.mse_loss(rho * y_pred, y) 132        return (alpha[0] * loss0 + alpha[1] * loss1) / (alpha[0] + alpha[1])133    else:134        return F.l1_loss(y_pred, y_pred.detach())  # 0 for batch with single sample.135def norm_loss_with_mean_normalization(y_pred, y, alpha=[1, 1], detach=False):136    if y_pred.size(0) > 1:  137        mean_hat = torch.mean(y_pred.detach()) if detach else torch.mean(y_pred)138        m_hat = torch.min(y_pred.detach()) if detach else torch.min(y_pred)139        M_hat = torch.max(y_pred.detach()) if detach else torch.max(y_pred)140        y_pred = (y_pred - mean_hat) / (eps + M_hat - m_hat)  # mean normalization141        y = (y - torch.mean(y)) / (eps + torch.max(y) - torch.min(y))142        loss0, loss1 = 0, 0143        if alpha[0] > 0:144            loss0 = F.mse_loss(y_pred, y) / 4145        if alpha[1] > 0:146            rho =  torch.cosine_similarity(y_pred.t(), y.t())  #147            loss1 = F.mse_loss(rho * y_pred, y) / 4148        return (alpha[0] * loss0 + alpha[1] * loss1) / (alpha[0] + alpha[1])149    else:150        return F.l1_loss(y_pred, y_pred.detach())  # 0 for batch with single sample.151def norm_loss_with_scaling(y_pred, y, alpha=[1, 1], p=2, detach=False):152    if y_pred.size(0) > 1:  153        normalization = torch.norm(y_pred.detach(), p=p) if detach else torch.norm(y_pred, p=p) 154        y_pred = y_pred / (eps + normalization)  # mean normalization155        y = y / (eps + torch.norm(y, p=p))156        loss0, loss1 = 0, 0157        if alpha[0] > 0:158            loss0 = F.mse_loss(y_pred, y) / 4159        if alpha[1] > 0:160            rho =  torch.cosine_similarity(y_pred.t(), y.t())  #161            loss1 = F.mse_loss(rho * y_pred, y) / 4162        return (alpha[0] * loss0 + alpha[1] * loss1) / (alpha[0] + alpha[1])163    else:...plotter.py
Source:plotter.py  
...60    fig, axs = plt.subplots(2, 2)61    fig.set_size_inches(12, 10)62    fig.suptitle(sTitle + ', inv err {:.2e}'.format(invErr))63    # hist, xbins, ybins, im = axs[0, 0].hist2d(x.numpy()[:,0],x.numpy()[:,1], range=[[LOW, HIGH], [LOW, HIGH]], bins = nBins)64    im1 , _, _, map1 = axs[0, 0].hist2d(x.detach().cpu().numpy()[:, d1], x.detach().cpu().numpy()[:, d2], range=[[LOWX, HIGHX], [LOWY, HIGHY]], bins=nBins)65    axs[0, 0].set_title('x from rho_0')66    im2 , _, _, map2 = axs[0, 1].hist2d(fx.detach().cpu().numpy()[:, d1], fx.detach().cpu().numpy()[:, d2], range=[[-4, 4], [-4, 4]], bins = nBins)67    axs[0, 1].set_title('f(x)')68    im3 , _, _, map3 = axs[1, 0].hist2d(finvfx.detach().cpu().numpy()[: ,d1] ,finvfx.detach().cpu().numpy()[: ,d2], range=[[LOWX, HIGHX], [LOWY, HIGHY]], bins = nBins)69    axs[1, 0].set_title('finv( f(x) )')70    im4 , _, _, map4 = axs[1, 1].hist2d(genModel.detach().cpu().numpy()[:, d1], genModel.detach().cpu().numpy()[:, d2], range=[[LOWX, HIGHX], [LOWY, HIGHY]], bins = nBins)71    axs[1, 1].set_title('finv( y from rho1 )')72    fig.colorbar(map1, cax=fig.add_axes([0.47, 0.53, 0.02, 0.35]) )73    fig.colorbar(map2, cax=fig.add_axes([0.89, 0.53, 0.02, 0.35]) )74    fig.colorbar(map3, cax=fig.add_axes([0.47, 0.11, 0.02, 0.35]) )75    fig.colorbar(map4, cax=fig.add_axes([0.89, 0.11, 0.02, 0.35]) )76    # plot paths77    if doPaths:78        forwPath = integrate(x[:, 0:d], net, [0.0, 1.0], nt_val, stepper="rk4", alph=net.alph, intermediates=True)79        backPath = integrate(fx[:, 0:d], net, [1.0, 0.0], nt_val, stepper="rk4", alph=net.alph, intermediates=True)80        # plot the forward and inverse trajectories of several points; white is forward, red is inverse81        nPts = 1082        pts = np.unique(np.random.randint(nSamples, size=nPts))83        for pt in pts:84            axs[0, 0].plot(forwPath[pt, 0, :].detach().cpu().numpy(), forwPath[pt, 1, :].detach().cpu().numpy(), color='white', linewidth=4)85            axs[0, 0].plot(backPath[pt, 0, :].detach().cpu().numpy(), backPath[pt, 1, :].detach().cpu().numpy(), color='red', linewidth=2)86    for i in range(axs.shape[0]):87        for j in range(axs.shape[1]):88            # axs[i, j].get_yaxis().set_visible(False)89            # axs[i, j].get_xaxis().set_visible(False)90            axs[i ,j].set_aspect('equal')91    # sPath = os.path.join(args.save, 'figs', sStartTime + '_{:04d}.png'.format(itr))92    if not os.path.exists(os.path.dirname(sPath)):93        os.makedirs(os.path.dirname(sPath))94    plt.savefig(sPath, dpi=300)95    plt.close()96def plotAutoEnc(x, xRecreate, sPath):97    # assume square image98    s = int(math.sqrt(x.shape[1]))99    nex = 8100    fig, axs = plt.subplots(4, nex//2)101    fig.set_size_inches(9, 9)102    fig.suptitle("first 2 rows originals. Rows 3 and 4 are generations.")103    for i in range(nex//2):104        axs[0, i].imshow(x[i,:].reshape(s,s).detach().cpu().numpy())105        axs[1, i].imshow(x[ nex//2 + i , : ].reshape(s,s).detach().cpu().numpy())106        axs[2, i].imshow(xRecreate[i,:].reshape(s,s).detach().cpu().numpy())107        axs[3, i].imshow(xRecreate[ nex//2 + i , : ].reshape(s, s).detach().cpu().numpy())108    for i in range(axs.shape[0]):109        for j in range(axs.shape[1]):110            axs[i, j].get_yaxis().set_visible(False)111            axs[i, j].get_xaxis().set_visible(False)112            axs[i ,j].set_aspect('equal')113    plt.subplots_adjust(wspace=0.0, hspace=0.0)114    if not os.path.exists(os.path.dirname(sPath)):115        os.makedirs(os.path.dirname(sPath))116    plt.savefig(sPath, dpi=300)117    plt.close()118def plotAutoEnc3D(x, xRecreate, sPath):119    nex = 8120    fig, axs = plt.subplots(4, nex//2)121    fig.set_size_inches(9, 9)122    fig.suptitle("first 2 rows originals. Rows 3 and 4 are generations.")123    for i in range(nex//2):124        axs[0, i].imshow(x[i,:].permute(1,2,0).detach().cpu().numpy())125        axs[1, i].imshow(x[ nex//2 + i , : ].permute(1,2,0).detach().cpu().numpy())126        axs[2, i].imshow(xRecreate[i,:].permute(1,2,0).detach().cpu().numpy())127        axs[3, i].imshow(xRecreate[ nex//2 + i , : ].permute(1,2,0).detach().cpu().numpy())128    for i in range(axs.shape[0]):129        for j in range(axs.shape[1]):130            axs[i, j].get_yaxis().set_visible(False)131            axs[i, j].get_xaxis().set_visible(False)132            axs[i ,j].set_aspect('equal')133    plt.subplots_adjust(wspace=0.0, hspace=0.0)134    if not os.path.exists(os.path.dirname(sPath)):135        os.makedirs(os.path.dirname(sPath))136    plt.savefig(sPath, dpi=300)137    plt.close()138def plotImageGen(x, xRecreate, sPath):139    # assume square image140    s = int(math.sqrt(x.shape[1]))141    nex = 80142    nCols = nex//5143    fig, axs = plt.subplots(7, nCols)144    fig.set_size_inches(16, 7)145    fig.suptitle("first 2 rows originals. Rows 3 and 4 are generations.")146    for i in range(nCols):147        axs[0, i].imshow(x[i,:].reshape(s,s).detach().cpu().numpy())148        # axs[1, i].imshow(x[ nex//3 + i , : ].reshape(s,s).detach().cpu().numpy())149        # axs[2, i].imshow(x[ 2*nex//3 + i , : ].reshape(s,s).detach().cpu().numpy())150        axs[2, i].imshow(xRecreate[i,:].reshape(s,s).detach().cpu().numpy())151        axs[3, i].imshow(xRecreate[nCols + i,:].reshape(s,s).detach().cpu().numpy())152        153        axs[4, i].imshow(xRecreate[2*nCols + i,:].reshape(s,s).detach().cpu().numpy())154        axs[5, i].imshow(xRecreate[3*nCols + i , : ].reshape(s, s).detach().cpu().numpy())155        axs[6, i].imshow(xRecreate[4*nCols + i , : ].reshape(s, s).detach().cpu().numpy())156    for i in range(axs.shape[0]):157        for j in range(axs.shape[1]):158            axs[i, j].get_yaxis().set_visible(False)159            axs[i, j].get_xaxis().set_visible(False)160            axs[i ,j].set_aspect('equal')161    plt.subplots_adjust(wspace=0.0, hspace=0.0)162    if not os.path.exists(os.path.dirname(sPath)):163        os.makedirs(os.path.dirname(sPath))164    plt.savefig(sPath, dpi=300)165    plt.close()166def plot4mnist(x, sPath, sTitle=""):167    """168    x - tensor (>4, 28,28)169    """170    fig, axs = plt.subplots(2, 2)171    fig.set_size_inches(12, 10)172    fig.suptitle(sTitle)173    im1 = axs[0, 0].imshow(x[0,:,:].detach().cpu().numpy())174    im2 = axs[0, 1].imshow(x[1,:,:].detach().cpu().numpy())175    im3 = axs[1, 0].imshow(x[2,:,:].detach().cpu().numpy())176    im4 = axs[1, 1].imshow(x[3,:,:].detach().cpu().numpy())177    fig.colorbar(im1, cax=fig.add_axes([0.47, 0.53, 0.02, 0.35]) )178    fig.colorbar(im2, cax=fig.add_axes([0.89, 0.53, 0.02, 0.35]) )179    fig.colorbar(im3, cax=fig.add_axes([0.47, 0.11, 0.02, 0.35]) )180    fig.colorbar(im4, cax=fig.add_axes([0.89, 0.11, 0.02, 0.35]) )181    for i in range(axs.shape[0]):182        for j in range(axs.shape[1]):183            axs[i, j].get_yaxis().set_visible(False)184            axs[i, j].get_xaxis().set_visible(False)185            axs[i ,j].set_aspect('equal')186    # sPath = os.path.join(args.save, 'figs', sStartTime + '_{:04d}.png'.format(itr))187    if not os.path.exists(os.path.dirname(sPath)):188        os.makedirs(os.path.dirname(sPath))189    plt.savefig(sPath, dpi=300)190    plt.close()LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!
