Documentation
¶
Index ¶
- Constants
- Variables
- func LogFilename(logName, netName, runName string) string
- func SetLogFile(logs *Logs, configOn bool, mode etime.Modes, time etime.Times, ...)
- type Context
- func (ctx *Context) ClosestPat(layNm, unitVar string, pats *table.Table, colnm, namecol string) (int, float32, string)
- func (ctx *Context) GetLayerSampleTensor(layNm, unitVar string) *tensor.Float32
- func (ctx *Context) GetLayerTensor(layNm, unitVar string) *tensor.Float32
- func (ctx *Context) ItemColTensor(mode etime.Modes, time etime.Times, itemNm string) tensor.Tensor
- func (ctx *Context) ItemColTensorScope(scope etime.ScopeKey, itemNm string) tensor.Tensor
- func (ctx *Context) ItemFloat(mode etime.Modes, time etime.Times, itemNm string) float64
- func (ctx *Context) ItemFloatScope(scope etime.ScopeKey, itemNm string) float64
- func (ctx *Context) ItemString(mode etime.Modes, time etime.Times, itemNm string) string
- func (ctx *Context) ItemStringScope(scope etime.ScopeKey, itemNm string) string
- func (ctx *Context) ItemTensor(mode etime.Modes, time etime.Times, itemNm string) tensor.Tensor
- func (ctx *Context) ItemTensorScope(scope etime.ScopeKey, itemNm string) tensor.Tensor
- func (ctx *Context) LastNRows(mode etime.Modes, time etime.Times, n int) *table.IndexView
- func (ctx *Context) LastNRowsScope(sk etime.ScopeKey, n int) *table.IndexView
- func (ctx *Context) Layer(layNm string) emer.Layer
- func (ctx *Context) SetAgg(mode etime.Modes, time etime.Times, ag stats.Stats) []float64
- func (ctx *Context) SetAggItem(mode etime.Modes, time etime.Times, itemNm string, ag stats.Stats) []float64
- func (ctx *Context) SetAggItemScope(scope etime.ScopeKey, itemNm string, ag stats.Stats) []float64
- func (ctx *Context) SetAggScope(scope etime.ScopeKey, ag stats.Stats) []float64
- func (ctx *Context) SetFloat32(val float32)
- func (ctx *Context) SetFloat64(val float64)
- func (ctx *Context) SetFloat64Cells(vals []float64)
- func (ctx *Context) SetInt(val int)
- func (ctx *Context) SetLayerSampleTensor(layNm, unitVar string) *tensor.Float32
- func (ctx *Context) SetLayerTensor(layNm, unitVar string) *tensor.Float32
- func (ctx *Context) SetStatFloat(name string)
- func (ctx *Context) SetStatInt(name string)
- func (ctx *Context) SetStatString(name string)
- func (ctx *Context) SetString(val string)
- func (ctx *Context) SetTable(sk etime.ScopeKey, lt *LogTable, row int)
- func (ctx *Context) SetTensor(val tensor.Tensor)
- type Item
- func (item *Item) CompileScopes()
- func (item *Item) HasMode(mode etime.Modes) bool
- func (item *Item) HasTime(time etime.Times) bool
- func (t *Item) SetCellShape(v ...int) *Item
- func (t *Item) SetColor(v string) *Item
- func (t *Item) SetDimNames(v ...string) *Item
- func (item *Item) SetEachScopeKey()
- func (t *Item) SetErrCol(v string) *Item
- func (t *Item) SetFixMax(v bool) *Item
- func (t *Item) SetFixMin(v bool) *Item
- func (t *Item) SetModes(v map[string]bool) *Item
- func (t *Item) SetName(v string) *Item
- func (t *Item) SetPlot(v bool) *Item
- func (t *Item) SetRange(v minmax.F32) *Item
- func (t *Item) SetTensorIndex(v int) *Item
- func (t *Item) SetTimes(v map[string]bool) *Item
- func (t *Item) SetType(v reflect.Kind) *Item
- func (t *Item) SetWrite(v WriteMap) *Item
- func (item *Item) SetWriteFunc(mode etime.Modes, time etime.Times, theFunc WriteFunc)
- func (item *Item) SetWriteFuncAll(theFunc WriteFunc)
- func (item *Item) SetWriteFuncOver(modes []etime.Modes, times []etime.Times, theFunc WriteFunc)
- func (item *Item) WriteFunc(mode, time string) (WriteFunc, bool)
- type LogTable
- type Logs
- func (lg *Logs) AddCopyFromFloatItems(toMode etime.Modes, toTimes []etime.Times, fmMode etime.Modes, ...)
- func (lg *Logs) AddCounterItems(ctrs ...etime.Times)
- func (lg *Logs) AddErrStatAggItems(statName string, times ...etime.Times)
- func (lg *Logs) AddItem(item *Item) *Item
- func (lg *Logs) AddLayerTensorItems(net emer.Network, varNm string, mode etime.Modes, etm etime.Times, ...)
- func (lg *Logs) AddPerTrlMSec(itemName string, times ...etime.Times) *Item
- func (lg *Logs) AddStatAggItem(statName string, times ...etime.Times) *Item
- func (lg *Logs) AddStatFloatNoAggItem(mode etime.Modes, etm etime.Times, stats ...string)
- func (lg *Logs) AddStatIntNoAggItem(mode etime.Modes, etm etime.Times, stats ...string)
- func (lg *Logs) AddStatStringItem(mode etime.Modes, etm etime.Times, stats ...string)
- func (lg *Logs) AddStdAggs(itm *Item, mode etime.Modes, times ...etime.Times)
- func (lg *Logs) CloseLogFiles()
- func (lg *Logs) CompileAllScopes()
- func (lg *Logs) CreateTables() error
- func (lg *Logs) IndexView(mode etime.Modes, time etime.Times) *table.IndexView
- func (lg *Logs) IndexViewScope(sk etime.ScopeKey) *table.IndexView
- func (lg *Logs) InitErrStats()
- func (lg *Logs) ItemBindAllScopes(item *Item)
- func (lg *Logs) ItemByName(name string) (*Item, bool)
- func (lg *Logs) LastNRows(mode etime.Modes, time etime.Times, n int) *table.IndexView
- func (lg *Logs) LastNRowsScope(sk etime.ScopeKey, n int) *table.IndexView
- func (lg *Logs) Log(mode etime.Modes, time etime.Times) *table.Table
- func (lg *Logs) LogRow(mode etime.Modes, time etime.Times, row int) *table.Table
- func (lg *Logs) LogRowDi(mode etime.Modes, time etime.Times, row int, di int) *table.Table
- func (lg *Logs) LogRowScope(sk etime.ScopeKey, row int, di int) *table.Table
- func (lg *Logs) LogScope(sk etime.ScopeKey) *table.Table
- func (lg *Logs) MPIGatherTableRows(mode etime.Modes, time etime.Times, comm *mpi.Comm)
- func (lg *Logs) MiscTable(name string) *table.Table
- func (lg *Logs) NamedIndexView(mode etime.Modes, time etime.Times, name string) (*table.IndexView, bool)
- func (lg *Logs) NamedIndexViewScope(sk etime.ScopeKey, name string) (*table.IndexView, bool)
- func (lg *Logs) NewTable(mode, time string) *table.Table
- func (lg *Logs) NoPlot(mode etime.Modes, time ...etime.Times)
- func (lg *Logs) NoPlotScope(sk etime.ScopeKey)
- func (lg *Logs) PlotItems(itemNames ...string)
- func (lg *Logs) ProcessItems()
- func (lg *Logs) ResetLog(mode etime.Modes, time etime.Times)
- func (lg *Logs) RunStats(stats ...string)
- func (lg *Logs) SetContext(stats *estats.Stats, net emer.Network)
- func (lg *Logs) SetFixMaxItems(max float32, itemNames ...string)
- func (lg *Logs) SetFixMinItems(min float32, itemNames ...string)
- func (lg *Logs) SetFloatMaxItems(itemNames ...string)
- func (lg *Logs) SetFloatMinItems(itemNames ...string)
- func (lg *Logs) SetLogFile(mode etime.Modes, time etime.Times, fnm string)
- func (lg *Logs) SetMeta(mode etime.Modes, time etime.Times, key, val string)
- func (lg *Logs) SetMetaScope(sk etime.ScopeKey, key, val string)
- func (lg *Logs) Table(mode etime.Modes, time etime.Times) *table.Table
- func (lg *Logs) TableDetails(mode etime.Modes, time etime.Times) *LogTable
- func (lg *Logs) TableDetailsScope(sk etime.ScopeKey) *LogTable
- func (lg *Logs) TableScope(sk etime.ScopeKey) *table.Table
- func (lg *Logs) WriteItems(sk etime.ScopeKey, row int)
- func (lg *Logs) WriteLastRowToFile(lt *LogTable)
- type WriteFunc
- type WriteMap
Constants ¶
const ( // DTrue is deprecated -- just use true DTrue = true // DFalse is deprecated -- just use false DFalse = false )
const LogPrec = 4
LogPrec is precision for saving float values in logs
Variables ¶
var LogDir = ""
LogDir is a directory that is prefixed for saving log files
Functions ¶
func LogFilename ¶
LogFilename returns a standard log file name as netName_runName_logName.tsv
Types ¶
type Context ¶
type Context struct { // pointer to the Logs object with all log data Logs *Logs // pointer to stats Stats *estats.Stats // network Net emer.Network // data parallel index for accessing data from network Di int // current log Item Item *Item // current scope key Scope etime.ScopeKey // current scope eval mode (if standard) Mode etime.Modes // current scope timescale (if standard) Time etime.Times // LogTable with extra data for the table LogTable *LogTable // current table to record value to Table *table.Table // current row in table to write to Row int }
Context provides the context for logging Write functions. SetContext must be called on Logs to set the Stats and Net values Provides various convenience functions for setting log values and other commonly used operations.
func (*Context) ClosestPat ¶
func (ctx *Context) ClosestPat(layNm, unitVar string, pats *table.Table, colnm, namecol string) (int, float32, string)
ClosestPat finds the closest pattern in given column of given pats table to given layer activation pattern using given variable. Returns the row number, correlation value, and value of a column named namecol for that row if non-empty. Column must be tensor.Float32
func (*Context) GetLayerSampleTensor ¶
GetLayerSampleTensor gets tensor of representative Unit values on a layer for given variable from current ctx.Di data parallel index.
func (*Context) GetLayerTensor ¶
GetLayerTensor gets tensor of Unit values on a layer for given variable from current ctx.Di data parallel index.
func (*Context) ItemColTensor ¶
ItemColTensor returns an tensor.Tensor of the entire column of given item name in log for given mode, time
func (*Context) ItemColTensorScope ¶
ItemColTensorScope returns an tensor.Tensor of the entire column of given item name in log for given scope.
func (*Context) ItemFloat ¶
ItemFloat returns a float64 value of the last row of given item name in log for given mode, time
func (*Context) ItemFloatScope ¶
ItemFloatScope returns a float64 value of the last row of given item name in log for given scope.
func (*Context) ItemString ¶
ItemString returns a string value of the last row of given item name in log for given mode, time
func (*Context) ItemStringScope ¶
ItemStringScope returns a string value of the last row of given item name in log for given scope.
func (*Context) ItemTensor ¶
ItemTensor returns an tensor.Tensor of the last row of given item name in log for given mode, time
func (*Context) ItemTensorScope ¶
ItemTensorScope returns an tensor.Tensor of the last row of given item name in log for given scope.
func (*Context) LastNRows ¶
LastNRows returns an IndexView onto table for given scope with the last n rows of the table (only valid rows, if less than n). This index view is available later with the "LastNRows" name via NamedIndexView functions.
func (*Context) LastNRowsScope ¶
LastNRowsScope returns an IndexView onto table for given scope with the last n rows of the table (only valid rows, if less than n). This index view is available later with the "LastNRows" name via NamedIndexView functions.
func (*Context) Layer ¶
Layer returns layer by name as the emer.Layer interface. May then need to convert to a concrete type depending.
func (*Context) SetAgg ¶
SetAgg sets an aggregated value computed from given eval mode and time scale with same Item name, to current item, row. Supports scalar or tensor cells. returns aggregated value(s).
func (*Context) SetAggItem ¶
func (ctx *Context) SetAggItem(mode etime.Modes, time etime.Times, itemNm string, ag stats.Stats) []float64
SetAggItem sets an aggregated value computed from given eval mode and time scale with given Item name, to current item, row. Supports scalar or tensor cells. returns aggregated value(s).
func (*Context) SetAggItemScope ¶
SetAggItemScope sets an aggregated value computed from another scope (ScopeKey) with given Item name, to current item, row. Supports scalar or tensor cells. returns aggregated value(s).
func (*Context) SetAggScope ¶
SetAggScope sets an aggregated value computed from another scope (ScopeKey) with same Item name, to current item, row. Supports scalar or tensor cells. returns aggregated value(s).
func (*Context) SetFloat32 ¶
SetFloat32 sets a float32 to current table, item, row
func (*Context) SetFloat64 ¶
SetFloat64 sets a float64 to current table, item, row
func (*Context) SetFloat64Cells ¶
SetFloat64Cells sets float64 values to tensor cell in current table, item, row
func (*Context) SetLayerSampleTensor ¶
SetLayerSampleTensor sets tensor of representative Unit values on a layer for given variable to current ctx.Di data parallel index.
func (*Context) SetLayerTensor ¶
SetLayerTensor sets tensor of Unit values on a layer for given variable to current ctx.Di data parallel index.
func (*Context) SetStatFloat ¶
SetStatFloat sets a Stats Float of given name to current table, item, row
func (*Context) SetStatInt ¶
SetStatInt sets a Stats int of given name to current table, item, row
func (*Context) SetStatString ¶
SetStatString sets a Stats string of given name to current table, item, row
type Item ¶
type Item struct { // name of column -- must be unique for a table Name string // data type, using tensor types which are isomorphic with arrow.Type Type reflect.Kind // shape of a single cell in the column (i.e., without the row dimension) -- for scalars this is nil -- tensor column will add the outer row dimension to this shape CellShape []int // names of the dimensions within the CellShape -- 'Row' will be added to outer dimension DimNames []string // holds Write functions for different scopes. After processing, the scope key will be a single mode and time, from Scope(mode, time), but the initial specification can lists for each, or the All* option, if there is a Write function that works across scopes Write WriteMap // Whether or not to plot it Plot bool // The minimum and maximum values, for plotting Range minmax.F32 // Whether to fix the minimum in the display FixMin bool // Whether to fix the maximum in the display FixMax bool // Name of other item that has the error bar values for this item -- for plotting ErrCol string // index of tensor to plot -- defaults to 0 -- use -1 to plot all TensorIndex int // specific color for plot -- uses default ordering of colors if empty Color string // map of eval modes that this item has a Write function for Modes map[string]bool // map of times that this item has a Write function for Times map[string]bool }
Item describes one item to be logged -- has all the info for this item, across all scopes where it is relevant.
func (*Item) CompileScopes ¶
func (item *Item) CompileScopes()
CompileScopes compiles maps of modes and times where this item appears. Based on the final updated Write map
func (*Item) SetCellShape ¶
SetCellShape sets the [Item.CellShape]: shape of a single cell in the column (i.e., without the row dimension) -- for scalars this is nil -- tensor column will add the outer row dimension to this shape
func (*Item) SetColor ¶
SetColor sets the [Item.Color]: specific color for plot -- uses default ordering of colors if empty
func (*Item) SetDimNames ¶
SetDimNames sets the [Item.DimNames]: names of the dimensions within the CellShape -- 'Row' will be added to outer dimension
func (*Item) SetEachScopeKey ¶
func (item *Item) SetEachScopeKey()
SetEachScopeKey updates the Write map so that it only contains entries for a unique Mode,Time pair, where multiple modes and times may have originally been specified.
func (*Item) SetErrCol ¶
SetErrCol sets the [Item.ErrCol]: Name of other item that has the error bar values for this item -- for plotting
func (*Item) SetFixMax ¶
SetFixMax sets the [Item.FixMax]: Whether to fix the maximum in the display
func (*Item) SetFixMin ¶
SetFixMin sets the [Item.FixMin]: Whether to fix the minimum in the display
func (*Item) SetModes ¶
SetModes sets the [Item.Modes]: map of eval modes that this item has a Write function for
func (*Item) SetRange ¶
SetRange sets the [Item.Range]: The minimum and maximum values, for plotting
func (*Item) SetTensorIndex ¶
SetTensorIndex sets the [Item.TensorIndex]: index of tensor to plot -- defaults to 0 -- use -1 to plot all
func (*Item) SetTimes ¶
SetTimes sets the [Item.Times]: map of times that this item has a Write function for
func (*Item) SetType ¶
SetType sets the [Item.Type]: data type, using tensor types which are isomorphic with arrow.Type
func (*Item) SetWrite ¶
SetWrite sets the [Item.Write]: holds Write functions for different scopes. After processing, the scope key will be a single mode and time, from Scope(mode, time), but the initial specification can lists for each, or the All* option, if there is a Write function that works across scopes
func (*Item) SetWriteFunc ¶
SetWriteFunc sets Write function for one mode, time
func (*Item) SetWriteFuncAll ¶
SetWriteFuncAll sets the Write function for all existing Modes and Times Can be used to replace a Write func after the fact.
func (*Item) SetWriteFuncOver ¶
SetWriteFuncOver sets the Write function over range of modes and times
type LogTable ¶
type LogTable struct { // Actual data stored. Table *table.Table // arbitrary meta-data for each table, e.g., hints for plotting: Plot = false to not plot, XAxis, LegendCol Meta map[string]string // Index View of the table -- automatically updated when a new row of data is logged to the table. IndexView *table.IndexView `display:"-"` // named index views onto the table that can be saved and used across multiple items -- these are reset to nil after a new row is written -- see NamedIndexView funtion for more details. NamedViews map[string]*table.IndexView `display:"-"` // File to store the log into. File *os.File `display:"-"` // true if headers for File have already been written WroteHeaders bool `display:"-"` }
LogTable contains all the data for one log table
func NewLogTable ¶
NewLogTable returns a new LogTable entry for given table, initializing values
func (*LogTable) GetIndexView ¶
GetIndexView returns the index view for the whole table. It is reset to nil after log row is written, and if nil then it is initialized to reflect current rows.
func (*LogTable) NamedIndexView ¶
NamedIndexView returns a named Index View of the table, and true if this index view was newly created to show entire table (else false). This is used for additional data aggregation, filtering etc. It is reset to nil after log row is written, and if nil then it is initialized to reflect current rows as a starting point (returning true). Thus, the bool return value can be used for re-using cached indexes.
func (*LogTable) ResetIndexViews ¶
func (lt *LogTable) ResetIndexViews()
ResetIndexViews resets all IndexViews -- after log row is written
type Logs ¶
type Logs struct { // Tables storing log data, auto-generated from Items. Tables map[etime.ScopeKey]*LogTable // holds additional tables not computed from items -- e.g., aggregation results, intermediate computations, etc MiscTables map[string]*table.Table // A list of the items that should be logged. Each item should describe one column that you want to log, and how. Order in list determines order in logs. Items []*Item `display:"-"` // context information passed to logging Write functions -- has all the information needed to compute and write log values -- is updated for each item in turn Context Context `display:"-"` // All the eval modes that appear in any of the items of this log. Modes map[string]bool `display:"-"` // All the timescales that appear in any of the items of this log. Times map[string]bool `display:"-"` // map of item indexes by name, for rapid access to items if they need to be modified after adding. ItemIndexMap map[string]int `display:"-"` // sorted order of table scopes TableOrder []etime.ScopeKey `display:"-"` }
Logs contains all logging state and API for doing logging. do AddItem to add any number of items, at different eval mode, time scopes. Each Item has its own Write functions, at each scope as neeeded. Then call CreateTables to generate log Tables from those items. Call Log with a scope to add a new row of data to the log and ResetLog to reset the log to empty.
func (*Logs) AddCopyFromFloatItems ¶
func (lg *Logs) AddCopyFromFloatItems(toMode etime.Modes, toTimes []etime.Times, fmMode etime.Modes, fmTime etime.Times, prefix string, itemNames ...string)
AddCopyFromFloatItems adds items that copy from one log to another, adding the given prefix string to each. if toTimes has more than 1 item, subsequent times are AggMean aggregates of first one. float64 type.
func (*Logs) AddCounterItems ¶
AddCounterItems adds given Int counters from Stats, typically by recording looper counter values to Stats.
func (*Logs) AddErrStatAggItems ¶
AddErrStatAggItems adds Err, PctErr, PctCor items recording overall performance from the given statName statistic (e.g., "TrlErr") across the 3 time scales, ordered from higher to lower, e.g., Run, Epoch, Trial.
func (*Logs) AddItem ¶
AddItem adds an item to the list. The items are stored in the order they are added, and this order is used for calling the item Write functions, so you can rely on that ordering for any sequential dependencies across items (e.g., in using intermediate computed values). Note: item names must be unique -- use different scopes for Write functions where needed.
func (*Logs) AddLayerTensorItems ¶
func (lg *Logs) AddLayerTensorItems(net emer.Network, varNm string, mode etime.Modes, etm etime.Times, layClasses ...string)
AddLayerTensorItems adds tensor recording items for given variable, classes of layers, mode and time (e.g., Test, Trial). If another item already exists for a different mode / time, this is added to it so there aren't any duplicate items. di is a data parallel index di, for networks capable of processing input patterns in parallel.
func (*Logs) AddPerTrlMSec ¶
AddPerTrlMSec adds a log item that records PerTrlMSec log item that records the time taken to process one trial. itemName is PerTrlMSec by default. and times are relevant 3 times to record, ordered higher to lower, e.g., Run, Epoch, Trial
func (*Logs) AddStatAggItem ¶
AddStatAggItem adds a Float64 stat that is aggregated with stats.MeanColumn across the given time scales, ordered from higher to lower, e.g., Run, Epoch, Trial. The statName is the source statistic in stats at the lowest level, and is also used for the log item name. For the Run or Condition level, aggregation is the mean over last 5 rows of prior level (Epoch)
func (*Logs) AddStatFloatNoAggItem ¶
AddStatFloatNoAggItem adds float statistic(s) of given names for just one mode, time, with no aggregation. If another item already exists for a different mode / time, this is added to it so there aren't any duplicate items.
func (*Logs) AddStatIntNoAggItem ¶
AddStatIntNoAggItem adds int statistic(s) of given names for just one mode, time, with no aggregation. If another item already exists for a different mode / time, this is added to it so there aren't any duplicate items.
func (*Logs) AddStatStringItem ¶
AddStatStringItem adds string stat item(s) to given mode and time (e.g., Allmodes, Trial). If another item already exists for a different mode / time, this is added to it so there aren't any duplicate items.
func (*Logs) AddStdAggs ¶
AddStdAggs adds standard aggregation items for times up to the penultimate time step provided, for given stat item that was created for the final timescale.
func (*Logs) CloseLogFiles ¶
func (lg *Logs) CloseLogFiles()
CloseLogFiles closes all open log files
func (*Logs) CompileAllScopes ¶
func (lg *Logs) CompileAllScopes()
CompileAllScopes gathers all the modes and times used across all items
func (*Logs) CreateTables ¶
CreateTables creates the log tables based on all the specified log items It first calls ProcessItems to instantiate specific scopes.
func (*Logs) IndexView ¶
IndexView returns the Index View of a log table for a given mode, time This is used for data aggregation functions over the entire table. It should not be altered (don't Filter!) and always shows the whole table. See NamedIndexView for custom index views.
func (*Logs) IndexViewScope ¶
IndexViewScope returns the Index View of a log table for given etime.ScopeKey This is used for data aggregation functions over the entire table. This view should not be altered and always shows the whole table. See NamedIndexView for custom index views.
func (*Logs) InitErrStats ¶
func (lg *Logs) InitErrStats()
InitErrStats initializes the base stats variables used for AddErrStatAggItems: TrlErr, FirstZero, LastZero, NZero
func (*Logs) ItemBindAllScopes ¶
ItemBindAllScopes translates the AllModes or AllTimes scopes into a concrete list of actual Modes and Times used across all items
func (*Logs) ItemByName ¶
ItemByName returns item by given name, false if not found
func (*Logs) LastNRows ¶
LastNRows returns an IndexView onto table for given scope with the last n rows of the table (only valid rows, if less than n). This index view is available later with the "LastNRows" name via NamedIndexView functions.
func (*Logs) LastNRowsScope ¶
LastNRowsScope returns an IndexView onto table for given scope with the last n rows of the table (only valid rows, if less than n). This index view is available later with the "LastNRows" name via NamedIndexView functions.
func (*Logs) Log ¶
Log performs logging for given mode, time. Adds a new row and Writes all the items. and saves data to file if open.
func (*Logs) LogRow ¶
LogRow performs logging for given mode, time, at given row. Saves data to file if open.
func (*Logs) LogRowDi ¶
LogRowDi performs logging for given mode, time, at given row, using given data parallel index di, which adds to the row and all network access routines use this index for accessing network data. Saves data to file if open.
func (*Logs) LogRowScope ¶
LogRowScope performs logging for given etime.ScopeKey, at given row. Saves data to file if open. di is a data parallel index, for networks capable of processing input patterns in parallel. effective row is row + di
func (*Logs) LogScope ¶
LogScope performs logging for given etime.ScopeKey Adds a new row and Writes all the items. and saves data to file if open.
func (*Logs) MPIGatherTableRows ¶
MPIGatherTableRows calls tensormpi.GatherTableRows on the given log table using an "MPI" suffixed MiscTable that is then switched out with the main table, so that any subsequent aggregation etc operates as usual on the full set of data. IMPORTANT: this switch means that the number of rows in the table MUST be reset back to either 0 (e.g., ResetLog) or the target number of rows, after the table is used, otherwise it will grow exponentially!
func (*Logs) MiscTable ¶
MiscTable gets a miscellaneous table, e.g., for misc analysis. If it doesn't exist, one is created.
func (*Logs) NamedIndexView ¶
func (lg *Logs) NamedIndexView(mode etime.Modes, time etime.Times, name string) (*table.IndexView, bool)
NamedIndexView returns a named Index View of a log table for a given mode, time. This is used for additional data aggregation, filtering etc. When accessing the first time during writing a new row of the log, it automatically shows a view of the entire table and returns true for 2nd arg. You can then filter, sort, etc as needed. Subsequent calls within same row Write will return the last filtered view, and false for 2nd arg -- can then just reuse view.
func (*Logs) NamedIndexViewScope ¶
NamedIndexView returns a named Index View of a log table for a given mode, time. This is used for additional data aggregation, filtering etc. When accessing the first time during writing a new row of the log, it automatically shows a view of the entire table and returns true for 2nd arg. You can then filter, sort, etc as needed. Subsequent calls within same row Write will return the last filtered view, and false for 2nd arg -- can then just reuse view.
func (*Logs) NoPlot ¶
NoPlot sets meta data to not plot for given scope mode, time. Typically all combinations of mode and time end up being generated, so you have to turn off plotting of cases not used.
func (*Logs) NoPlotScope ¶
NoPlotScope sets meta data to not plot for given scope mode, time. Typically all combinations of mode and time end up being generated, so you have to turn off plotting of cases not used.
func (*Logs) ProcessItems ¶
func (lg *Logs) ProcessItems()
ProcessItems is called in CreateTables, after all items have been added. It instantiates All scopes, and compiles multi-list scopes into single mode, item pairs
func (*Logs) ResetLog ¶
ResetLog resets the log for given mode, time, at given row. by setting number of rows = 0 The IndexViews are reset too.
func (*Logs) RunStats ¶
RunStats records descriptive values for given stats across all runs, at Train Run scope, saving to RunStats misc table
func (*Logs) SetContext ¶
SetContext sets the Context for logging Write functions to give general access to the stats and network
func (*Logs) SetFixMaxItems ¶
SetFixMaxItems sets the FixMax flag and Range Max val for given items
func (*Logs) SetFixMinItems ¶
SetFixMinItems sets the FixMin flag and Range Min val for given items
func (*Logs) SetFloatMaxItems ¶
SetFloatMaxItems turns off the FixMax flag for given items
func (*Logs) SetFloatMinItems ¶
SetFloatMinItems turns off the FixMin flag for given items
func (*Logs) SetLogFile ¶
SetLogFile sets the log filename for given scope
func (*Logs) SetMetaScope ¶
SetMetaScope sets table meta data for given scope
func (*Logs) TableDetails ¶
TableDetails returns the LogTable record of associated info for given table
func (*Logs) TableDetailsScope ¶
TableDetailsScope returns the LogTable record of associated info for given table
func (*Logs) TableScope ¶
TableScope returns the table for given etime.ScopeKey
func (*Logs) WriteItems ¶
WriteItems calls all item Write functions within given scope providing the relevant Context for the function. Items are processed in the order added, to enable sequential dependencies to be used.
func (*Logs) WriteLastRowToFile ¶
WriteLastRowToFile writes the last row of table to file, if File != nil