コード例 #1
0
 def add_residual_multi(self,
                        shape,
                        node1,
                        node2,
                        convtype,
                        depth=15,
                        extent=5,
                        early=3):
     """
     This is an expensive operation
     """
     in_pos = self.node_pos_tracker[node1]
     out_pos = self.node_pos_tracker[node2]
     pos1 = [in_pos[0], in_pos[1], in_pos[2] + depth]
     pos2 = [pos1[0] + extent, pos1[1], pos1[2]]  # Draw box here
     pos3 = [out_pos[0] - early, pos2[1], pos2[2]]
     pos4 = [pos3[0], out_pos[1], out_pos[2]]  # Draw concat here
     tex_code_node = connection.add_connection_simple(
         None, in_pos, pos1, convtype + "op")
     self.tex_code = self.tex_code + util.spacing() + tex_code_node
     tex_code_node = connection.add_connection_simple(
         None, pos1, pos2, convtype + "op")
     self.tex_code = self.tex_code + util.spacing() + tex_code_node
     ## Adding conv here now
     tex_code_node = conv.construct_conv_out(shape, pos2, "residualdepth1",
                                             "residualdepth1", ["", "", ""],
                                             "depthwise")
     #self.update(name, tex_code_node)
     self.tex_code = self.tex_code + util.spacing() + tex_code_node
     tex_code_node = connection.add_connection_simple(
         "residualdepth1", pos2, pos3, convtype + "op")
     self.tex_code = self.tex_code + util.spacing() + tex_code_node
     tex_code_node = connection.add_connection_simple(
         None, pos3, pos4, convtype + "op")
     self.tex_code = self.tex_code + util.spacing() + tex_code_node
コード例 #2
0
 def update(self, name, code):
     """
     This is a small utility function
     """
     self.node_pos_tracker[name] = self.current_pos
     self.prev_pos = self.current_pos
     self.prev_node = name
     self.current_pos = util.update_pos(self.current_pos, self.rel_dist)
     self.tex_code = self.tex_code + util.spacing() + code
コード例 #3
0
 def add_intermediate_input(self, name, input_image, shape):
     """
     Input can be added in between.
     """
     tex_code_node = connection.add_connection_simple(
         self.prev_node, self.prev_pos, self.current_pos, "genericconvop")
     self.tex_code = self.tex_code + util.spacing() + tex_code_node
     tex_code_node = img.add_input(input_image, self.current_pos, shape)
     self.update(name, tex_code_node)
     self.prev_node = None
コード例 #4
0
 def draw(self):
     self.tex_code = self.tex_code + util.spacing() + bp.footer()
     with open(self.name + ".tex", "w") as f:
         f.write(self.tex_code)
     try:
         os.system("pdflatex " + self.name)
         os.system("rm *.aux *.log")
         print("Generated " + self.name + ".pdf")
     except:
         print("Please install pdflatex!")
コード例 #5
0
 def add_pointwise_tensor(self,
                          name,
                          shape=[32, 3, 32],
                          annotation=["", "", ""]):
     """
     pointwise conv
     """
     tex_code_node = connection.add_connection_simple(
         self.prev_node, self.prev_pos, self.current_pos, "pointwiseop")
     self.tex_code = self.tex_code + util.spacing() + tex_code_node
     tex_code_node = conv.construct_conv_out(shape, self.current_pos, name,
                                             name, annotation, "pointwise")
     self.update(name, tex_code_node)
コード例 #6
0
 def add_upconv_tensor(self,
                       name,
                       shape=[32, 3, 32],
                       annotation=["", "", ""]):
     """
     transpose conv
     """
     tex_code_node = connection.add_connection_simple(
         self.prev_node, self.prev_pos, self.current_pos, "upconvop")
     self.tex_code = self.tex_code + util.spacing() + tex_code_node
     # Needs to add the exand concept here
     tex_code_node = conv.construct_upconv_out(shape, self.current_pos,
                                               name, name, annotation,
                                               "upconv")
     self.update(name, tex_code_node)
コード例 #7
0
 def add_generic_conv_tensor(self,
                             name,
                             shape=[32, 3, 32],
                             caption="",
                             annotation=["", "", ""],
                             space=0):
     """
     generic conv
     """
     self.current_pos[0] = self.current_pos[0] + space
     tex_code_node = connection.add_connection_simple(
         self.prev_node, self.prev_pos, self.current_pos, "genericconvop")
     self.tex_code = self.tex_code + util.spacing() + tex_code_node
     tex_code_node = conv.construct_conv_out(shape, self.current_pos, name,
                                             caption, annotation, "conv")
     self.update(name, tex_code_node)