亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bbvis.py

?? The library is a C++/Python implementation of the variational building block framework introduced in
?? PY
?? 第 1 頁 / 共 2 頁
字號:
#!/usr/bin/env python# -*- coding: iso-8859-1 -*-## This file is a part of the Bayes Blocks library## Copyright (C) 2001-2006 Markus Harva, Antti Honkela, Alexander# Ilin, Tapani Raiko, Harri Valpola and Tomas 謘tman.## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2, or (at your option)# any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License (included in file License.txt in the# program package) for more details.## $Id: BBVis.py 5 2006-10-26 09:44:54Z ah $#"""Tkinter GUI for BBNet visualiser"""import osimport tempfileimport Tkinterfrom Tkconstants import *import tkFileDialogimport tkColorChooserimport tkMessageBoximport Pmwimport stringimport copyimport DotWriter# Node count for warning of too large networkLARGENETLIMIT = 100class BBVis:    """GUI for Bayes Blocks Visualiser"""    def __init__(self, net):        self.writer = DotWriter.PlainWriter(net)        self.root = Tkinter.Tk()        self.root.title('BBNet Visualiser')        Pmw.initialise(self.root, size = 14, fontScheme = 'pmw1')        # Supported zoomlevels and related font sizes etc.        self.zoomlevels = ['10 %', '25 %', '50 %', '100 %', '200 %', '400 %']        self.zoomvals = {'10 %': .1, '25 %': .25, '50 %': .5, '100 %': 1.0,                         '200 %': 2.0, '400 %': 4.0}        self.zoomfonts = {.1: 2, .25: 5, .5: 9, 1.0: 14,                          2.0: 28, 4.0: 56}        self.textitems = []        # Included node types and other active modifications        self.selectedtypes = copy.deepcopy(self.writer.types)        self.mods = {}        # Supported modifications and their handlers        self.modhandlers = {'Combine sum trees': self.CombineSumtrees,                            'Drop all indices': self.DropIndices}        # Add all the necessary GUI elements        self.canvas = Tkinter.Canvas(self.root)        self.commandframe = Tkinter.Frame(self.root)        self.typeframe = Tkinter.Frame(            self.commandframe, borderwidth=2, relief='ridge')        self.typeframe.pack(side=TOP, padx = 8, pady = 8, fill=X)        self.typebutton = Tkinter.Button(            self.typeframe, text='Select types',            command=self.RunTypeSelector)        self.typebutton.pack(side=TOP)        self.treeselect = Pmw.RadioSelect(self.commandframe,                                          buttontype = 'checkbutton',                                          orient = 'vertical',                                          labelpos = 'n',                                          label_text = 'Modifications',                                          command = self.ApplyMod,                                          hull_borderwidth = 2,                                          hull_relief = 'ridge',                                          selectmode = 'multiple')        self.treeselect.pack(side=TOP, padx = 8, pady = 8, fill=X)        for t in ['Combine sum trees', 'Drop all indices']:            self.treeselect.add(t)        self.dropframe = Tkinter.Frame(            self.commandframe, borderwidth=2, relief='ridge')        self.dropframe.pack(side=TOP, padx = 8, pady = 8, fill=X)        self.dropbutton = Tkinter.Button(            self.dropframe, text='Selectively drop indices',            command=self.RunIndexSelector)        self.dropbutton.pack(side=TOP)        self.propframe = Tkinter.Frame(            self.commandframe, borderwidth=2, relief='ridge')        self.propframe.pack(side=TOP, padx = 8, pady = 8, fill=X)        self.propbutton = Tkinter.Button(            self.propframe, text='Select node properties',            command=self.RunPropertySelector)        self.propbutton.pack(side=TOP)        self.propmenu =  Pmw.OptionMenu(self.propframe,                                        labelpos = 'n',                                        label_text = 'Node type',                                        items = self.writer.types                                        )        self.propmenu.pack(side=TOP, padx = 8, pady = 8, expand = 0)        self.zoombutton =  Pmw.OptionMenu(self.commandframe,                                          labelpos = 'n',                                          label_text = 'Zoom level',                                          items = self.zoomlevels,                                          command = self.ZoomToLevel,                                          hull_borderwidth = 2,                                          hull_relief = 'ridge',                                          initialitem='100 %'                                          )        self.zoombutton.pack(side=TOP, padx = 8, pady = 8, fill=X)        self.zoomlevel = 1.0        self.savebutton = Tkinter.Button(self.commandframe, text='Save graph',                                         command=self.SaveToFile)        self.savebutton.pack(side=TOP, padx = 40)        self.quitbutton = Tkinter.Button(self.commandframe, text='Quit',                                         command=self.root.quit)        self.quitbutton.pack(side=TOP, padx = 40)        if len(self.writer.d_act.keys()) > LARGENETLIMIT:            tkMessageBox.showwarning("Too large net", "Large net - dropping indices.\nTry to simplify the structure before returning to full view.")            self.treeselect.setvalue(['Drop all indices'])            self.mods['Drop all indices'] = 1            self.PerformOps()        val = self.GenerateFigure()        if not val:            self.PackGUI()    def _AdjustScrollregion(self):        """Internal function to adjust the scroll region of the canvas"""        self.bbox = self.canvas.bbox('everything')        self.scrollregion = (self.bbox[0] - 50, self.bbox[1] - 50,                             self.bbox[2] + 50, self.bbox[3] + 50)        self.canvas.config(scrollregion=self.scrollregion)    def _TagText(self):        """Internal function to tag all text items"""        self.textitems = []        for i in self.canvas.find_all():            try:                font = self.canvas.itemcget(i, 'font')                self.textitems.append(i)            except:                pass    def ResizeText(self, newsize):        """Resize all text items to given size"""        for i in self.textitems:            font = self.canvas.itemcget(i, 'font')            components = font.split('-')            components[7] = `newsize`            newfont = string.join(components, '-')            self.canvas.itemconfigure(i, font=newfont)    def Zoom(self, factor):        """Zoom the canvas"""        self.canvas.scale('everything', 1.0, 1.0, float(factor), float(factor))        self._AdjustScrollregion()    def ZoomToLevel(self, factor):        """Handler for GUI zoom operation"""        newlevel = self.zoomvals[factor]        if newlevel != self.zoomlevel:            self.Zoom(newlevel / self.zoomlevel)            self.ResizeText(self.zoomfonts[newlevel])            self.zoomlevel = newlevel    def PerformOps(self):        """Perform all requested modifications to the graph"""        self.writer.ResetFilter()        self.writer.FilterButType(self.selectedtypes)        self.writer.SelectivelyDropIndices()        for k in self.mods.keys():            if self.mods[k]:                self.modhandlers[k]()    def GenerateFigure(self):        """(Re)generate the figure"""        # Issue a warning if the net seems too large        if len(self.writer.d_act.keys()) > LARGENETLIMIT and \               not tkMessageBox.askyesno("Large net", "Visualising this large graph (" + str(len(self.writer.d_act.keys())) + " nodes) may take very long time.  Are you sure you want to proceed?"):            return 0        # Generate a temporary filename for the graph and write to the file        fname = tempfile.mktemp('tk')        self.writer.WriteToTk(fname)        # Destroy the old figure        self.canvas.destroy()        # Show the new figure and delete the temporary file        self.ShowFigure(fname)        os.unlink(fname)        # Set zoom to correct level        self.Zoom(self.zoomlevel)        self.ResizeText(self.zoomfonts[self.zoomlevel])        return 1    def ShowFigure(self, file):        """Load a graph for Tk source file and display it"""        # Run the Tk source        self.root.tk.call('source', file)        # Substitute the generated canvas to existing Python class        # for easier handling        self.canvas._name = 'c'        self.canvas._w = '.c'        self.canvas.addtag_all('everything')        self._AdjustScrollregion()        self._TagText()        self.canvas.config(width=500, height=500)        self.PackGUI()    def PackGUI(self):        self.xbar = Tkinter.Scrollbar(self.canvas)        self.xbar.config(orient='horizontal')        self.ybar = Tkinter.Scrollbar(self.canvas)        self.xbar.config(command=self.canvas.xview)        self.ybar.config(command=self.canvas.yview)        self.canvas.config(xscrollcommand=self.xbar.set)        self.canvas.config(yscrollcommand=self.ybar.set)        self.xbar.pack(side=BOTTOM, fill=X)        self.ybar.pack(side=RIGHT, fill=Y)        self.canvas.pack(side=RIGHT, expand=YES, fill=BOTH)        self.canvas.config(width=500, height=500)        self.commandframe.pack(side=LEFT, fill=Y)    def RunTypeSelector(self):        TypeSelector(self.writer.types, self.writer.variables,                     self.selectedtypes, self)    def ApplyMod(self, button, val):        """Apply a new modification to the graph"""        self.mods[button] = val        self.PerformOps()        self.GenerateFigure()    def CombineSumtrees(self):        self.writer.CombineSumtrees()    def DropIndices(self):        self.writer.DropIndices()    def SaveToFile(self):        """Save the dot source of the current net"""        fname = tkFileDialog.asksaveasfilename(            filetypes=[('dot source files', '*.dot')])        if fname:            self.writer.WriteGraph(fname)    def RunPropertySelector(self):        PropertySelector(self,                         self.writer.properties[self.propmenu.getvalue()])    def RunIndexSelector(self):        IndexSelector(self, self.writer.GetAllLabels(), self.writer.indexdrops)    def ApplyTypeSelections(self, selected=None):        if selected:            if `self.selectedtypes` != `selected`:                self.selectedtypes = selected                self.PerformOps()                self.GenerateFigure()

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品一区二区三区电影天堂 | 欧美艳星brazzers| 激情国产一区二区| 久久成人久久鬼色| 国产在线视频精品一区| 国产中文字幕一区| 成人丝袜18视频在线观看| 国产电影一区在线| 成人高清视频在线观看| 色婷婷激情一区二区三区| 一本大道久久a久久精二百| 在线观看精品一区| 在线电影一区二区三区| 日韩视频在线观看一区二区| 欧美精品一区二区三区久久久 | 亚洲精品午夜久久久| 亚洲三级小视频| 亚洲五月六月丁香激情| 日本sm残虐另类| 国产精品系列在线播放| 色综合久久综合网97色综合 | 国产精品一区三区| 91麻豆国产香蕉久久精品| 欧美三级日韩三级| 日韩精品中文字幕在线一区| 中文字幕精品在线不卡| 亚洲香肠在线观看| 国产一区二区三区精品欧美日韩一区二区三区 | 日韩和欧美一区二区| 乱一区二区av| 91丨porny丨中文| 欧美一区日韩一区| 中文字幕一区二区在线播放| 日韩中文欧美在线| av一区二区久久| 在线不卡中文字幕播放| 国产精品美女久久久久久2018| 亚洲国产aⅴ天堂久久| 国内精品久久久久影院色| 91蜜桃在线免费视频| 精品久久99ma| 亚洲成a人片在线观看中文| 国产九九视频一区二区三区| 欧美综合亚洲图片综合区| 国产三级一区二区三区| 午夜电影一区二区三区| 91麻豆免费观看| 国产女同性恋一区二区| 日本一不卡视频| 色噜噜久久综合| 国产网站一区二区三区| 亚洲成人精品一区| 91免费小视频| 国产精品国产精品国产专区不蜜 | 26uuu欧美日本| 亚洲成人久久影院| 色欧美日韩亚洲| 国产精品麻豆网站| 国产麻豆精品一区二区| 日韩一区二区不卡| 婷婷成人综合网| 欧美视频一区在线| 亚洲欧美日韩成人高清在线一区| 国产精品一区二区你懂的| 欧美一级视频精品观看| 视频一区视频二区中文| 欧美色视频一区| 亚洲成a人v欧美综合天堂| 91高清视频免费看| 一个色妞综合视频在线观看| 91蝌蚪porny九色| 亚洲欧美一区二区久久| youjizz久久| 中文字幕一区二区不卡| 成人av综合一区| 亚洲视频在线观看三级| 91色porny在线视频| 尤物视频一区二区| 欧美午夜精品一区二区蜜桃 | 91精品国产手机| 青青草伊人久久| 欧美哺乳videos| 国产一区二区三区四区五区美女 | 亚洲精品国产视频| 欧美亚一区二区| 亚洲aaa精品| 日韩欧美中文字幕一区| 国产一区二区三区在线观看免费| 久久色在线观看| 99久久婷婷国产综合精品| 亚洲精品国产第一综合99久久 | 精油按摩中文字幕久久| 久久综合给合久久狠狠狠97色69| 国产一区二区精品久久| 国产精品欧美久久久久无广告| 91在线一区二区三区| 亚洲一级二级在线| 日韩精品在线一区二区| 国产高清不卡一区二区| 亚洲精品免费在线播放| 欧美精品自拍偷拍| 国产成人综合亚洲网站| 亚洲精品中文在线观看| 在线综合视频播放| 国产91精品欧美| 亚洲成人免费影院| 国产亚洲一区二区三区在线观看| 91色在线porny| 精彩视频一区二区三区 | 欧美日韩一区二区三区四区五区| 免费精品视频在线| 国产精品久久久久久久裸模| 欧美日韩国产综合一区二区三区| 国产曰批免费观看久久久| 亚洲男女毛片无遮挡| 精品国产三级电影在线观看| 97超碰欧美中文字幕| 久久爱另类一区二区小说| 中文字幕综合网| 久久综合色8888| 精品视频在线免费观看| 粉嫩高潮美女一区二区三区 | 亚洲激情av在线| 精品区一区二区| 欧美三级电影精品| 97se亚洲国产综合自在线不卡 | 亚洲欧美偷拍三级| 国产性天天综合网| 欧美一区二区视频网站| 日本久久精品电影| 成人性生交大合| 狠狠色丁香久久婷婷综合_中| 亚洲午夜影视影院在线观看| 国产精品成人在线观看| 国产夜色精品一区二区av| 欧美一级片在线| 欧美老肥妇做.爰bbww| 色婷婷国产精品综合在线观看| 国产成人在线视频免费播放| 久久99精品国产.久久久久久| 亚洲va国产va欧美va观看| 亚洲免费观看高清完整| 国产精品久久久久久户外露出 | 国产凹凸在线观看一区二区| 久久精品久久精品| 男女性色大片免费观看一区二区 | 欧美一级专区免费大片| 在线播放视频一区| 欧美高清视频www夜色资源网| 欧美自拍偷拍一区| 在线视频国产一区| 色婷婷av一区| 欧美性欧美巨大黑白大战| 欧美最猛性xxxxx直播| 欧美影院一区二区三区| 欧美色图12p| 日韩一区二区三区电影| 欧美大片日本大片免费观看| 日韩欧美一级片| 久久影音资源网| 国产日韩欧美a| 国产精品美女久久久久aⅴ国产馆| 久久精品一区二区三区四区| 国产欧美一区二区三区在线看蜜臀 | 久久av资源站| 国产在线精品视频| 成人午夜又粗又硬又大| 91亚洲午夜精品久久久久久| 在线观看区一区二| 日韩视频123| 国产欧美视频一区二区三区| 国产精品成人一区二区艾草| 一区二区三区中文字幕在线观看| 亚洲自拍偷拍综合| 免费人成精品欧美精品| 国产乱子轮精品视频| a亚洲天堂av| 欧美军同video69gay| 精品国产99国产精品| 国产精品免费看片| 亚洲h在线观看| 国产福利电影一区二区三区| 色综合天天综合网天天看片| 欧美日本免费一区二区三区| 精品国产露脸精彩对白| 中文字幕日本乱码精品影院| 日欧美一区二区| 成人av影视在线观看| 欧美精品乱码久久久久久| 久久精品一区八戒影视| 亚洲综合成人网| 国产精品18久久久久久久久久久久| 色综合久久久久| 久久人人97超碰com| 亚洲无人区一区| 成人av在线一区二区三区| 日韩三级中文字幕| 亚洲精品久久久蜜桃| 国产精品亚洲专一区二区三区| 欧美日韩一区三区|