I can change the operating point and see the effects instantaneously for all intents and purposes. The problem shown here with three classes (Class A, B, C) is smooth and responsive. There is always only one overall plot regardless of the size of the problem (three classes or forty classes as in the “real world” test problem I am considering). So, when a user manipulates the operating point, the following things get updated: (1) the operating point markers (triangle and inverted triangle in its row/column element of the grid) (2) the hover tooltip of the inverted triangle, again only in that grid row/column element (3) the decimal value at the top right above the plot, again only in that grid row/column element.Īdditionally, the markers in the overall plot at the top of the screen is updated based on the average results from the three classes below. It is updated using a transform to ensure that the accuracy score is constrained to be on the reference line mentioned above. That is also a separate data source, and is only a single point column data source created initially from a pandas dataframe. It serves as a line for visual reference.Įach class also has a glyph/marker denoting the selected operating point. And it doesn’t get updated even when user interactions are applied. The data source is created from a pandas dataframe initially. Its intentionally separated from the data sources for the other classes. There is a data source for a line and it is unique to that class. To make the discussion a bit more concrete, see the attached screenshot for a smaller sized problem (three classes in a multiclass classification task).Įach class has an accuracy line comprising 1000 points that give accuracy as a function of operating point (x-axis value in the range ). There are separate data sources for each row/column. (I have no direct evidence that is what occurs from profiling or such, but anecdotally that appears to be happening.) So I was hoping there was something I could do in how I organize things so that bokeh is only re-rendering that specific row/column element and not re-render the entire page on each action. That’s not the case in my application, as individual actions only affect the related graphics in the associated row/column element of a grid. The referenced link mentions that a source of slow-down there is that certain user actions are indeed affecting multiple plots. And things are smooth and lag-free when I have a few plots in my grid. However, I believe I have organized the data sources and glyphs as efficiently as possible given the end-use requirements. The point about large amounts of data is certainly appreciated. I am already using the canvas backend at create-time for my figures. I had not seen it in my initial investigation of similar issues. With that background, I am wondering if there are pointers given insight into the underlying codebase or model implementations that can be followed to make things generally more responsive.Īre certain model types more prone to inefficiencies in this area?Īre certain sizing attributes (and at what level) preferred or able to prevent re-layout of the entire UI when only one element of a grid is being refreshed at any given time? I have reviewed similar prior threads, e.g.Īnd dispositions that work addressed this in recent updates to the bokeh application, e.g. In case its relevant, the implementation is a bokeh server realization. Moreover, the underlying data are being updated efficiently with data patches, so I’m not pushing around large amounts of data. I am fairly certain that the problem is with re-layout of the display. I observe experimentally that when making interactive changes to a given class’ models, the rendering is halting and slow to respond, taking several seconds for a problem with 30 - 40 classes (and thus 30 - 40 grid elements). a pair of linked figures and possibly a UI control such as a slider. Moreover, each element in the grid comprises multiple bokeh model primitives, e.g. Each class’ contribution to the overall behavior is associated with one of the plots in the grid layout. I have a grid-based layout for graphical presentation of information and user interaction to dynamically change settings and observe the effects in a multiclass classification problem.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |