| 24 | |
| 25 | |
| 26 | class NetDefNode(): |
| 27 | |
| 28 | def __init__(self, name, optype, p=None, op=None): |
| 29 | self.name = name |
| 30 | self.optype = optype |
| 31 | self.ops = {} |
| 32 | self.prev = {} |
| 33 | self.insertInput(p) |
| 34 | self.visited = False |
| 35 | self.op = op |
| 36 | |
| 37 | def insertInput(self, p): |
| 38 | """ |
| 39 | Insert input of this op |
| 40 | also maintain the output of previous op |
| 41 | p: a node or a list of node |
| 42 | """ |
| 43 | if isinstance(p, list): |
| 44 | for i in p: |
| 45 | self.prev[i.name] = i |
| 46 | i.ops[self.name] = self |
| 47 | elif isinstance(p, NetDefNode): |
| 48 | self.prev[p.name] = p |
| 49 | p.ops[self.name] = self |
| 50 | |
| 51 | def deleteInput(self, p): |
| 52 | if isinstance(p, NetDefNode): |
| 53 | del self.prev[p.name] |
| 54 | del p.ops[self.name] |
| 55 | |
| 56 | |
| 57 | def maskNallocate(weight_name): |
no outgoing calls
no test coverage detected
searching dependent graphs…