当前位置: 首页 > news >正文

泉州企业自助建站系统网络营销的概念和特征

泉州企业自助建站系统,网络营销的概念和特征,wordpress 更新数据库,最好大连网站建设说明 为了进一步提升程序设计与运维的可靠性#xff0c;我觉得#xff08;目前看来#xff09;只有依赖图的结构。 提升主要包含如下方面#xff1a; 1 程序结构的简洁性#xff1a;节点和边2 程序执行的可视化#xff1a;交通图(红、黄、绿)3 程序支持的逻辑复杂性。…说明 为了进一步提升程序设计与运维的可靠性我觉得目前看来只有依赖图的结构。 提升主要包含如下方面 1 程序结构的简洁性节点和边2 程序执行的可视化交通图(红、黄、绿)3 程序支持的逻辑复杂性。子图嵌套。 其实这种方法在很多AI工具例如KNIME)都已经使用了似乎这也是唯一可行的方法。之所以要自己开发还是基于一条假设现成的工具永远无法实现你最重要的20%需求。 抛开一些可视化效果不说目前的图工具又有什么特别棒的地方呢 内容 1 想法 通过结构上的设计来确保万无一失而不是依赖主观意愿的不出错 子图。子图是最常见的管理单位一个子图一定具有的结构是Input、Core和Output。Core也可以称为子图核心从运行上可以认为是一个服务或者是一个以固定的定时程序来替代(间歇性服务。 子图是一个合理的功能划分通常不超过10个节点这个规模属于人能容易看清楚而工作量大约为几个人天的规模。 子图在某种程度上也可以认为是一个大号的节点。节点会包含某种处理和存储简单的时候可以理解为节点“run一个函数然后根据input(s)处理为output(s)。当处理比较复杂的时候那么就是一个子图里面有若干个节点的处理流程。所以子图同样需要类似input(s)处理为output(s), 同样子图也有run方法但是子图的run会按顺序(BFS)若干节点的run。 在实际运行时最小的单位应该就是子图因为子图有核心可以改变结构最重要的可以进行常态服务。如果某块工作只有一个节点那么这个节点也应该注册到某个子图。 关联操作。之所以要将节点注册到子图最大的原因是这些操作结果间存在关联将它们放在一起执行是合适的产生的中间结果可以在一次图会话中暂存可以切进去反复调试、修改。 子图模板与运行子图。我们基于某项具体的任务或者业务进行逻辑处理上的设计所形成的图称为子图模板例如实体识别的处理是一个子图模板当用于业务A的时候启动一个子图称为运行子图运行子图是一个子图模板的副本但挂载了与业务相关的资源例如磁盘、CPU、GPU)并保存了相应的执行信息例如日志。 子图最终是以嵌套的方式构成更复杂的结构的。因为子图和节点的结构(input和output)以及调用方法都是固定的所以最终可以视为都是某一张子图的运行。这样做的好处是同样所有的结构都是高度相似的。当然也有坏处就是我们无法得知一张子图到底有多深这会带来运行时间和效率的不确定性。所以在设计每一个子图的时候要让其容纳足够的逻辑复杂性。随着计算机性能的提升处理复杂性并维持逻辑稳定性显然是更重要的。只要确保每次子图的执行时间是可行的那么通过分布式系统可以同时计算大量的任务。 最终一个大的问题变为了一个子图设计问题这确保了各个组件间自动的关联。子图和节点有着同样的结构这样在开发时又是高度一致并且简洁的。 2 尝试 首先先确定本地的图工具为Networkx。这是一个比较经典的网络工具包本身可以进行一些常见的图计算。这里我主要利用这个包本身的网络构造方法未来可能还会用一些路径算法来计算最小距离之类的。当本地的开发成熟后网络信息将以Json形式同步到Mongo和Neo4j从而实现全局的存储、应用和搜索(图查询)。 下面定义了一个网络是一个数据处理的流程相对粗粒度。 1 可以感觉到定义到6个节点时开始略微觉得有点烦但还可以接受。我觉得这个就是一个子图合适的尺寸。一般的任务可以大致以3层子图来进行规划这样容纳的就是6**3 ~ 216个节点。2 每个节点的属性实际上就是一个标准字典可以容纳函数。但是要进行Json保存的时候就会有问题函数无法Json序列化。 # 例子import networkx as nx import matplotlib.pyplot as plt# 图的定义 # Create a directed graph G nx.DiGraph()def hello():print(This is Node Running ...)G.add_node(1) G.nodes[1][name] M G.nodes[1][description] 数据1 G.nodes[1][run] helloG.add_node(2) G.nodes[2][name] C G.nodes[2][description] 数据2 G.nodes[2][run] helloG.add_node(3) G.nodes[3][name] MergeData G.nodes[3][description] 合并数据 G.nodes[3][run] helloG.add_edge(1,3) G.add_edge(2,3)G.add_node(4) G.nodes[4][name] FeatureHorizonal G.nodes[4][description] 特征处理(横向) G.nodes[4][run] helloG.add_edge(3,4)G.add_node(5) G.nodes[5][name] ImbalanceSample G.nodes[5][description] 不等比采样 G.nodes[5][run] helloG.add_edge(4,5)G.add_node(6) G.nodes[6][name] FeatureVertical G.nodes[6][description] 特征处理(纵向) G.nodes[6][run] helloG.add_edge(5,6)# 图的绘画 # 获取节点标签属性 node_labels nx.get_node_attributes(G, name)# pos nx.shell_layout(G) pos nx.spring_layout(G) nx.draw(G, pos, with_labelsFalse, node_size1000, font_size12, font_colorblack, arrowsTrue) # 绘制节点标签 _ nx.draw_networkx_labels(G, pos, labelsnode_labels)这个画的图不是上面的网络只是证明可以很容易给不同的节点标色这个在可视化上很重要。 2.1 BFS 在任何一个子图中比较重要的就是节点的执行顺序。简单的来说我们可以认为节点是按层分布的按照顺序去执行这些层的节点就可以了。所以首先通过nx实现子图的BFS。 按上面的想法一个子图中的节点可能是一个节点也可能是一张子图但是从执行上我们可以都当做是节点。只不过在真实执行时如果对应的节点是子图类型那么在其内部会再进行展开。对于任何一个子图总是需要先通过BFS确定内部节点或子图的执行顺序 1 在图中选取入度为0的节点作为第一层2 遍历第一层中的节点选择以这些节点作为起点的边边的另一端就是第二层几点3 循环以致图中无节点 # 查看图中节点的入度 G.in_degree()# 获取入度为 0 的节点列表 nodes_with_in_degree_zero [node for node, in_degree in G.in_degree() if in_degree 0]layer_dict {}# 初始化节点 init_node_list [node for node, in_degree in G.in_degree() if in_degree 0] layer_dict[0] init_node_list# 节点的入度字典 in_degree_dict dict(G.in_degree()) all_nodes set(G.nodes) travel_nodes set(init_node_list)# 迭代节点 for i in range(1,10):last_layer_nodes layer_dict[i-1]layer_dict[i] []for last_node in last_layer_nodes:out_nodes list(G.successors(last_node))if len(out_nodes):for out_node in out_nodes:out_node_degree in_degree_dict[out_node]out_node_degree1 out_node_degree-1if out_node_degree1 0:layer_dict[i].append(out_node)travel_nodes.add(out_node)else:in_degree_dict[out_node] out_node_degree1gap_set all_nodes - travel_nodesif len(gap_set) 0:break# 打印观察 for l in sorted(list(layer_dict.keys())): # print(l)for n in layer_dict[l]: # print(n)G.nodes[n][run]()代码中构造了一个空的字典然后选择入度为0的节点作为第0层。然后进行若干次层的搜索每次搜索都遍历上一层的所有节点假设这个节点为n。 对所有的n都列出其后续节点然后遍历到n时进行入度减1处理。当这个后续节点的入度为0时说明节点所有的依赖都被满足那么将节点放入本层。 在每层的搜索完成时都将所有节点减去已遍历完成的节点如果差集为0那么中断BFS的继续迭代。 2.2 保存为json 通过nx自带的包就可以把图的json信息导出,同时也可以通过载入json来恢复这个图。之所以选择json是因为这种格式比较容易通过网络传播也容易存储在redis或者mongo中。 from networkx.readwrite import json_graph # 保存图 data json_graph.node_link_data(G)3 设计 首先明确这个的设计目标是什么。由于复杂的逻辑处理以及各种可能性的探索我希望能够通过这个工具来进行大规模的探索在合适的时候可以轻易的转入生产服务态从中受益。 从一般人工智能的角度出发这个设计要能够支持学习(Learn)与变换(Transform)模式。 从图的角度想象学习与变换过程的网络是极其相似重合的所以可以把图分为两层底层是相同的变换过程而上层是学习层构成变换所需的元数据节点。 在运行时由最外层的子图负责服务。子图核心会定时的启动轮询。如果是文件模式那么决定是否进行流通是根据输入输出文件夹的文件差如果是数据库或者服务模式那么输入输出就是缓冲数据。 这样input节点的运行状态就是「正常|绿色」,如果是生产态子图就会开始基于已有的BFS开始执行如果是开发态子图就会开始BFS然后执行。 每次传播都是基于每一层的节点一次执行最理想的情况是全部的运行状态都是「正常|绿色」如果某个节点类型是子图那么就会下钻到这个子图执行然后返回。子图节点的状态由其内部节点的运行状态决定例如有一个红色那么就该节点就为红色。所以可视化查看时也可能需要层层下钻。 整个子图的数据都是可json的这也意味着节点的方法将以文本的方式声明存储在一个专门的对象中。同时在节点运行过程中的数据也将以共享工作空间的方式挂在某个对象上。 1 子图。包含了整个处理所有的相关结构和元数据。2 方法对象。通过名称和参数来声明的处理。3 数据对象。子图的所有共享数据。数据只能在同一子图中共享如果需要跨子图共享就需要通过子图的数据入口进行声明与对接。 4 Wrapped Up 本次只是原型设计的一次探索在短时间内暂时不会真正全面实施所以到这里进行一个打包。 1 封装方法。将BFS的过程抽象为函数。未来这个方法会多次用到通过BFS我们确定了合法的节点执行顺序。 # 输入一个nx图给出BFS层级字典 def BFS(some_G,max_depth 100):layer_dict {}# 初始化节点init_node_list [node for node, in_degree in some_G.in_degree() if in_degree 0]layer_dict[0] init_node_list # 节点的入度字典in_degree_dict dict(some_G.in_degree())all_nodes set(some_G.nodes)travel_nodes set(init_node_list)# 迭代节点for i in range(1,max_depth):last_layer_nodes layer_dict[i-1]layer_dict[i] []for last_node in last_layer_nodes:out_nodes list(some_G.successors(last_node))if len(out_nodes):for out_node in out_nodes:out_node_degree in_degree_dict[out_node]out_node_degree1 out_node_degree-1if out_node_degree1 0:layer_dict[i].append(out_node)travel_nodes.add(out_node)else:in_degree_dict[out_node] out_node_degree1gap_set all_nodes - travel_nodesif len(gap_set) 0:breakreturn layer_dictBFS(G) {0: [1, 2], 1: [3], 2: [4], 3: [5], 4: [6]}可以看到这个图是一个Y型的结构。 (1,2)-(3)-(4)-(5)-(6) 2 三个功能结构。 子图保留的数据全部为可json的状态包含了图的(多层)结构,学习层学到的元数据节点。 数据对象 将运行中的子图数据进行保存/暂存在图会话期间这些数据将以默认的方式进行共享同一个子图内或者显示的传递给子图共享。 方法对象 方法对象主要只是借用了对象这种形式将函数及其参数进行了形式上的剥离只是将方法统一的绑定在某个对象上。使得所有的操作变得参数形式化这样容易被智能代理调用。
http://www.dnsts.com.cn/news/1918.html

相关文章:

  • 网站设计与开发实例seo中文意思是
  • 做类似交易猫的网站静态网页制作
  • 北京大型网站建设免费制作网站的软件
  • 网站使用的语言独立网站和平台网站
  • 手机运用网站篮网最新消息
  • 营销网站建设公司排名推广app赚佣金平台有哪些
  • 网站建设总体情况群发软件
  • 现在都不用dw做网站了吗百度pc端首页
  • 好的网站特点推广联盟平台
  • 电子商务网站管理内容seo招聘网
  • 有哪些做分析图用的网站网络推广宣传方式
  • 网站支付平台是怎么做的北京度seo排名
  • 如何用api做网站厦门seo报价
  • 淄博网站建设电话咨询百度pc版网页
  • 素材网站建设需要多少费用谷歌浏览器网页版在线
  • 网站建设方案案例seo整站优化新站快速排名
  • 学做网站设计需要多少钱百度关键词排名优化工具
  • 网站全新改版如何做成都私人网站制作
  • 做网站哪个行业比较有前景做营销策划的公司
  • 温州网站建设方案报价竞价推广培训课程
  • 上海网站建设与设计公司如何做互联网营销推广
  • 长城宽带seowhy论坛
  • 江门建站网站模板有什么引流客源的软件
  • 信阳做网站的公司官网排名优化方案
  • 外国做视频在线观看网站百度优化怎么做
  • 织梦网站源码下载学seo哪个培训好
  • 网站开发技术教程百度指数行业排行
  • 免费响应式模板网站模板申请域名
  • 中国建设银行招投标网站郑州企业网站seo
  • 可以做自己的单机网站种子搜索神器在线搜