Skip to content

Conversation

@longjon
Copy link
Contributor

@longjon longjon commented Dec 28, 2014

This allows layers to do essentially arbitrary things that depend on the structure of the net.

This provides a lot of power, but breaks the nice abstraction of a layer as a function-with-gradient. A future PR will depend on this functionality. If it seems sufficiently useful, perhaps we should merge this, but be wary not to abuse it. Or perhaps we should find another way to compute on the structure of nets. Or perhaps we should do the former keeping the latter as a future possibility.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should probably have a NULL initializer, otherwise LGTM

@shelhamer shelhamer mentioned this pull request Jan 23, 2015
shelhamer and others added 21 commits January 24, 2015 18:27
* A sample code was added.
* `slice_dim` and `slice_point` attributes were explained.
[docs] brief explanation of SLICE layer's attributes
Correct 'epochs' to 'iterations'
Next: release candidater
set the right rpath for tools and examples respectively

thanks for the report @mees!
[build] fix dynamic linking of tools
… was overwritten with symlink created at build time and installed with install(DIRECTORY ...)
… systems).

This commit specifies Python2 with which cpp_lint.py works :-)
@jyegerlehner
Copy link
Contributor

I suggest you consider instead giving the Layer a helper class or functor in Setup that provides a narrowly focused ability to do only whatever thing it is you need the Layer to be able to do. In so doing, you design out all the abuse (to which you allude) that the Layer could otherwise do if you just give it mutable net pointer.

An example of this is in 1895 where the InverseMVNLayer needs to figure out which of its bottom blobs is which by name. I provided a BlobFinder in the Setup method so it can do this.

spmallick and others added 12 commits February 23, 2015 16:13
APPLE was misspelled in Line 27
fixes: cpp_lint.py fails silently with Python3
Making python3 work with cmake and the new python wrapper
Commands, such as $(error ...), are not allowed to be indented with tabs
outside of targets, throwing an error instead of outputting the actual
error. The solution is to use innocuous spaces instead. Ideally, spaces
should be used everywhere outside targets, but since make does not mind
it if variable assignments are tab-indented outside targets, a complete
overhaul is not necessary. However, if more errors are added, it might
make more sense to be consistent.

Also, make will already add a period so I removed it.
fix accelerate / veclib path for OS X 10.10
Replaced illegal tab in Makefile with spaces.
This allows layers to do things that depend, e.g., on net topology.
@shelhamer
Copy link
Member

Replaced by #1974.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.