How to use new_key method in hypothesis

Best Python code snippet using hypothesis

shufflenetv2_to_mmcls.py

Source: shufflenetv2_to_mmcls.py Github

copy

Full Screen

1# Copyright (c) OpenMMLab. All rights reserved.2import argparse3from collections import OrderedDict4import torch5def convert_conv1(model_key, model_weight, state_dict, converted_names):6 if model_key.find('conv1.0') >= 0:7 new_key = model_key.replace('conv1.0', 'backbone.conv1.conv')8 else:9 new_key = model_key.replace('conv1.1', 'backbone.conv1.bn')10 state_dict[new_key] = model_weight11 converted_names.add(model_key)12 print(f'Convert {model_key} to {new_key}')13def convert_conv5(model_key, model_weight, state_dict, converted_names):14 if model_key.find('conv5.0') >= 0:15 new_key = model_key.replace('conv5.0', 'backbone.layers.3.conv')16 else:17 new_key = model_key.replace('conv5.1', 'backbone.layers.3.bn')18 state_dict[new_key] = model_weight19 converted_names.add(model_key)20 print(f'Convert {model_key} to {new_key}')21def convert_head(model_key, model_weight, state_dict, converted_names):22 new_key = model_key.replace('fc', 'head.fc')23 state_dict[new_key] = model_weight24 converted_names.add(model_key)25 print(f'Convert {model_key} to {new_key}')26def convert_block(model_key, model_weight, state_dict, converted_names):27 split_keys = model_key.split('.')28 layer, block, branch = split_keys[:3]29 layer_id = int(layer[-1]) - 230 new_key = model_key.replace(layer, f'backbone.layers.{layer_id}')31 if branch == 'branch1':32 if new_key.find('branch1.0') >= 0:33 new_key = new_key.replace('branch1.0', 'branch1.0.conv')34 elif new_key.find('branch1.1') >= 0:35 new_key = new_key.replace('branch1.1', 'branch1.0.bn')36 elif new_key.find('branch1.2') >= 0:37 new_key = new_key.replace('branch1.2', 'branch1.1.conv')38 elif new_key.find('branch1.3') >= 0:39 new_key = new_key.replace('branch1.3', 'branch1.1.bn')40 elif branch == 'branch2':41 if new_key.find('branch2.0') >= 0:42 new_key = new_key.replace('branch2.0', 'branch2.0.conv')43 elif new_key.find('branch2.1') >= 0:44 new_key = new_key.replace('branch2.1', 'branch2.0.bn')45 elif new_key.find('branch2.3') >= 0:46 new_key = new_key.replace('branch2.3', 'branch2.1.conv')47 elif new_key.find('branch2.4') >= 0:48 new_key = new_key.replace('branch2.4', 'branch2.1.bn')49 elif new_key.find('branch2.5') >= 0:50 new_key = new_key.replace('branch2.5', 'branch2.2.conv')51 elif new_key.find('branch2.6') >= 0:52 new_key = new_key.replace('branch2.6', 'branch2.2.bn')53 else:54 raise ValueError(f'Unsupported conversion of key {model_key}')55 else:56 raise ValueError(f'Unsupported conversion of key {model_key}')57 print(f'Convert {model_key} to {new_key}')58 state_dict[new_key] = model_weight59 converted_names.add(model_key)60def convert(src, dst):61 """Convert keys in torchvision pretrained ShuffleNetV2 models to mmcls62 style."""63 # load pytorch model64 blobs = torch.load(src, map_location='cpu')65 # convert to pytorch style66 state_dict = OrderedDict()67 converted_names = set()68 for key, weight in blobs.items():69 if 'conv1' in key:70 convert_conv1(key, weight, state_dict, converted_names)71 elif 'fc' in key:72 convert_head(key, weight, state_dict, converted_names)73 elif key.startswith('s'):74 convert_block(key, weight, state_dict, converted_names)75 elif 'conv5' in key:76 convert_conv5(key, weight, state_dict, converted_names)77 # check if all layers are converted78 for key in blobs:79 if key not in converted_names:80 print(f'not converted: {key}')81 # save checkpoint82 checkpoint = dict()83 checkpoint['state_dict'] = state_dict84 torch.save(checkpoint, dst)85def main():86 parser = argparse.ArgumentParser(description='Convert model keys')87 parser.add_argument('src', help='src detectron model path')88 parser.add_argument('dst', help='save path')89 args = parser.parse_args()90 convert(args.src, args.dst)91if __name__ == '__main__':...

Full Screen

Full Screen

key_expander.py

Source: key_expander.py Github

copy

Full Screen

1"""2AES Key Expansion3Expands 128, 192, or 256 bit key for use with AES4Algorithm per NIST FIPS-197 http:/​/​csrc.nist.gov/​publications/​fips/​fips197/​fips-197.pdf5Copyright (c) 2010, Adam Newman http:/​/​www.caller9.com6Licensed under the MIT license http:/​/​www.opensource.org/​licenses/​mit-license.php7"""8__all__ = "expandKey",9from .aes_tables import sbox,rcon10_expanded_key_length={16:176,24:208,32:240}11def expandKey(new_key):12 """Expand the encryption key per AES key schedule specifications13 http:/​/​en.wikipedia.org/​wiki/​Rijndael_key_schedule#Key_schedule_description"""14 _n=len(new_key)15 if _n not in (16,24,32):16 raise RuntimeError('expand(): key size is invalid')17 rcon_iter=118 _nn16=_n!=1619 _n32=_n==3220 n0=new_key[-4]21 n1=new_key[-3]22 n2=new_key[-2]23 n3=new_key[-1]24 _n0=-_n25 _n1=1-_n26 _n2=2-_n27 _n3=3-_n28 _n=_expanded_key_length[_n]-_n29 nex=new_key.extend30 while 1:31 #Copy last 4 bytes of extended key, apply core, increment rcon_iter,32 #core Append the list of elements 1-3 and list comprised of element 0 (circular rotate left)33 #core For each element of this new list, put the result of sbox into output array.34 #xor with 4 bytes n bytes from end of extended key35 #First byte of output array is XORed with rcon(iter)36 nx=n0,n1,n2,n3=(sbox[n1]^rcon[rcon_iter]^new_key[_n0],37 sbox[n2]^new_key[_n1],38 sbox[n3]^new_key[_n2],39 sbox[n0]^new_key[_n3])40 nex(nx)41 rcon_iter += 142 #Run three passes of 4 byte expansion using copy of 4 byte tail of extended key43 #which is then xor'd with 4 bytes n bytes from end of extended key44 nx=n0,n1,n2,n3=(n0^new_key[_n0],45 n1^new_key[_n1],46 n2^new_key[_n2],47 n3^new_key[_n3])48 nex(nx)49 nx=n0,n1,n2,n3=(n0^new_key[_n0],50 n1^new_key[_n1],51 n2^new_key[_n2],52 n3^new_key[_n3])53 nex(nx)54 nx=n0,n1,n2,n3=(n0^new_key[_n0],55 n1^new_key[_n1],56 n2^new_key[_n2],57 n3^new_key[_n3])58 nex(nx)59 _n -= 1660 if _n <= 0:return new_key61 elif _nn16:62 #If key length is 256 and key is not complete, add 4 bytes tail of extended key63 #run through sbox before xor with 4 bytes n bytes from end of extended key64 if _n32:65 nx=n0,n1,n2,n3=(sbox[n0]^new_key[_n0],66 sbox[n1]^new_key[_n1],67 sbox[n2]^new_key[_n2],68 sbox[n3]^new_key[_n3])69 nex(nx)70 _n -= 471 if _n <= 0:return new_key72 #If key length in (192, 256) and key is not complete, run 2 or 3 passes respectively73 #of 4 byte tail of extended key xor with 4 bytes n bytes from end of extended key74 nx=n0,n1,n2,n3=(n0^new_key[_n0],75 n1^new_key[_n1],76 n2^new_key[_n2],77 n3^new_key[_n3])78 nex(nx)79 nx=n0,n1,n2,n3=(n0^new_key[_n0],80 n1^new_key[_n1],81 n2^new_key[_n2],82 n3^new_key[_n3])83 nex(nx)84 if _n32:85 nx=n0,n1,n2,n3=(n0^new_key[_n0],86 n1^new_key[_n1],87 n2^new_key[_n2],88 n3^new_key[_n3])89 nex(nx)90 _n -= 1291 else:_n -= 8...

Full Screen

Full Screen

Blogs

Check out the latest blogs from LambdaTest on this topic:

Joomla Testing Guide: How To Test Joomla Websites

Before we discuss the Joomla testing, let us understand the fundamentals of Joomla and how this content management system allows you to create and maintain web-based applications or websites without having to write and implement complex coding requirements.

Now Log Bugs Using LambdaTest and DevRev

In today’s world, an organization’s most valuable resource is its customers. However, acquiring new customers in an increasingly competitive marketplace can be challenging while maintaining a strong bond with existing clients. Implementing a customer relationship management (CRM) system will allow your organization to keep track of important customer information. This will enable you to market your services and products to these customers better.

Why Agile Teams Have to Understand How to Analyze and Make adjustments

How do we acquire knowledge? This is one of the seemingly basic but critical questions you and your team members must ask and consider. We are experts; therefore, we understand why we study and what we should learn. However, many of us do not give enough thought to how we learn.

27 Best Website Testing Tools In 2022

Testing is a critical step in any web application development process. However, it can be an overwhelming task if you don’t have the right tools and expertise. A large percentage of websites still launch with errors that frustrate users and negatively affect the overall success of the site. When a website faces failure after launch, it costs time and money to fix.

11 Best Mobile Automation Testing Tools In 2022

Mobile application development is on the rise like never before, and it proportionally invites the need to perform thorough testing with the right mobile testing strategies. The strategies majorly involve the usage of various mobile automation testing tools. Mobile testing tools help businesses automate their application testing and cut down the extra cost, time, and chances of human error.

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run hypothesis automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful