Skip to content

Nicer error messages for mode-forbidden ops - #169

Merged
karllessard merged 3 commits into
tensorflow:masterfrom
rnett:rn_mode_forbidden_ops
Jan 2, 2021
Merged

Nicer error messages for mode-forbidden ops#169
karllessard merged 3 commits into
tensorflow:masterfrom
rnett:rn_mode_forbidden_ops

Conversation

@rnett

@rnettrnett commented Dec 9, 2020

Copy link
Copy Markdown
Contributor

Adds a way to forbid ops in ExecutionEnviroments, uses it to forbid Placeholder, Variable, and Assign in eager mode. As far as I know there's no way to detect ahead of time whether an op is forbidden, so this list will have to be added to as people run into mode-specific ops. These three are likely to be the most common though.

Fixes#155 and fixes#154.

@karllessard

Copy link
Copy Markdown
Collaborator

What about moving the isOpEnabled check here and here to avoid instantiating an operation builder if the op is not supported?

Signed-off-by: Ryan Nett <rnett@calpoly.edu>
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
@rnett
rnettforce-pushed the rn_mode_forbidden_ops branch from f90d892 to 463036dCompareJanuary 1, 2021 23:45
@rnett

rnett commented Jan 1, 2021

Copy link
Copy Markdown
ContributorAuthor

What about moving the isOpEnabled check here and here to avoid instantiating an operation builder if the op is not supported?

There's a few places in tests where the builder is used directly, but that seems fine since it's package private.

Signed-off-by: Ryan Nett <rnett@calpoly.edu>
@karllessard
karllessard merged commit e4a11b3 into tensorflow:masterJan 2, 2021
JimClarke5 pushed a commit to JimClarke5/java that referenced this pull request Jan 30, 2021
* start fobbiden ops checks
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* fix style
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* move checks to builder method
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
karllessard pushed a commit that referenced this pull request Feb 1, 2021
* Initial checkin
* Initial checkin and sync with master
* Initial checkin and sync with master
* JavaDoc cleanup
* Javadoc fixes
* Change LossInterface to LossMetric.
Fix JavaDoc,
modify one line code block to include braces.
* Removed hashmap for variables, they are not needed as the variables only live within a single instance of a Metric.
* reformat code
* Add tests for assertBroadcastable
* Change type to resultType
* Added V data type for sampleWeights so that it is not forced to be the same type as the return or internal variables,
* change 'type' to 'resultType'
* clean up mean and fix assert assertBroadcastable
* fix error message
* Change sampleWeights to have its own generic type <S extends TNumber>
* Add commment about invalid tests expecting IllegalArgumentExceptions
* Add this exception instead of the more generic IllegalArgumentException when static shapes cannot boradcast.
* change IllegalArgumentException to NotBroadcastableException.
change hasValidNonscalarShape to canBroadcastNonscalarShapes
change hasValidNonscalarShape to canBroadcastNonscalarShapes
* reformat code
* Fis=x Javadoc
move the dynamic shapes and rank down to the dynamic section so they are created needlessly when static
Fix if statement to check for unknown size and unknown dimensions
* Fix Reduce to use boradcastWeights,
renamed WeightBroadcastTest to AssertBroadcastableTest and added BroadcastWeightsTest
* Added comment to count to indicate that it may be weighted.
* Added SetsOps and fixed AssertBroadcastable to use SetsOps methods,
* Fixed based on various PR comments.
* Deleted, no longer needed after change to Variable handling in Metrics.
* Nicer error messages for mode-forbidden ops (#169)
* start fobbiden ops checks
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* fix style
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* move checks to builder method
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* Initialization imprvements (#178)
* No-op on initAdd in eager mode
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* runInit() method in session
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* add doInitialization() to Runner
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* fix javadoc
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* assume only graph or eager environments
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* Remove doInit(), update javadocs
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* small fixes
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* Clairify tensorOf lifetime requirements (#190)
* Clairify tensorOf lifetime requirements
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* Do codegen
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* Remove extra generics from op generation (#193)
* Successfully remove extra type params, but it broke javadoc generation
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* Generate covariant types
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* Do generation
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* Update help text.
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* Fixes
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* Add Java 11 support - Initial Phase (#185)
* Add profile for JDK11 and Automatic-Module-Name to jars
* add maven.compiler.release=11
* Update manual ops for new codegen (#196)
Signed-off-by: Ryan Nett <rnett@calpoly.edu>
* Fix Losses to use CHANNELS_FIRST/LAST for CategoricalCrossentropy
* Fix SetOps to properly convert sparse tensor to dense tensor using tf.sparse.sparseToDense with the output of tf.sparse.denseToDenseSetOperation
* Initial checkin
* Initial checkin and sync with master
* Initial checkin and sync with master
* JavaDoc cleanup
* Javadoc fixes
* Change LossInterface to LossMetric.
Fix JavaDoc,
modify one line code block to include braces.
* Removed hashmap for variables, they are not needed as the variables only live within a single instance of a Metric.
* reformat code
* Add tests for assertBroadcastable
* Change type to resultType
* Added V data type for sampleWeights so that it is not forced to be the same type as the return or internal variables,
* change 'type' to 'resultType'
* clean up mean and fix assert assertBroadcastable
* fix error message
* Change sampleWeights to have its own generic type <S extends TNumber>
* Add commment about invalid tests expecting IllegalArgumentExceptions
* Add this exception instead of the more generic IllegalArgumentException when static shapes cannot boradcast.
* change IllegalArgumentException to NotBroadcastableException.
change hasValidNonscalarShape to canBroadcastNonscalarShapes
change hasValidNonscalarShape to canBroadcastNonscalarShapes
* reformat code
* Fis=x Javadoc
move the dynamic shapes and rank down to the dynamic section so they are created needlessly when static
Fix if statement to check for unknown size and unknown dimensions
* Fix Reduce to use boradcastWeights,
renamed WeightBroadcastTest to AssertBroadcastableTest and added BroadcastWeightsTest
* Added comment to count to indicate that it may be weighted.
* Added SetsOps and fixed AssertBroadcastable to use SetsOps methods,
* Fixed based on various PR comments.
* Deleted, no longer needed after change to Variable handling in Metrics.
* Fix Losses to use CHANNELS_FIRST/LAST for CategoricalCrossentropy
* Fix SetOps to properly convert sparse tensor to dense tensor using tf.sparse.sparseToDense with the output of tf.sparse.denseToDenseSetOperation
Co-authored-by: Ryan Nett <rnett@calpoly.edu>
@rnett
rnett deleted the rn_mode_forbidden_ops branch October 17, 2021 00:43
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

tf.variable with initial value does not work in eager mode Better error messages for ops forbidden in Eager mode

2 participants

@rnett@karllessard