Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nd4j refactoring #112

Merged
merged 8 commits into from Aug 15, 2019

Conversation

@RobAltena
Copy link
Collaborator

commented Aug 14, 2019

What changes were proposed in this pull request?

Ongoing refactoring of Nd4j.java. Removed some unused methods, removes some duplicate code. Updates some javadoc.

How was this patch tested?

Verified CPU and Cuda builds. Made sure tests run.Got quite a different error count for this PR.

RobAltena added 4 commits Aug 14, 2019
refactoring
Signed-off-by: Robert Altena <Rob@Ra-ai.com>
wip
Signed-off-by: Robert Altena <Rob@Ra-ai.com>
wip
Signed-off-by: Robert Altena <Rob@Ra-ai.com>

@RobAltena RobAltena requested a review from AlexDBlack Aug 14, 2019

@AlexDBlack
Copy link

left a comment

One minor change required.
Let's also handle this (either here or separately, your call)
eclipse#8087

throw new ND4JIllegalStateException("Shape of the new array " + Arrays.toString(shape)
+ " doesn't match data length: " + data.length);
+ " doesn't match data length: " + dataLength);

This comment has been minimized.

Copy link
@AlexDBlack

AlexDBlack Aug 14, 2019

Now that I look at this condition (if (shape.length== 1)) it kind of looks off to me.
There's only 2 valid cases here:
Scalars: shape is length 0 (or null should be ok too I think) then dataLength must be 1 - i.e., rank 0 scalar
Otherwise prod(shape) must be equal to data length

This comment has been minimized.

Copy link
@RobAltena

RobAltena Aug 14, 2019

Author Collaborator

If it is off, it is now only off in one and not eight places. It looks like asserting that for a 1D array the length of data matches. Checking prod(shape) equal to data length makes more sense. This we could handle separately. I will create an issue.

@@ -5213,6 +5084,7 @@ public static INDArray scalar(Number value) {
* @param value the value to initialize the scalar with
* @return the created ndarray
*/
@SuppressWarnings("deprecation")
public static INDArray scalar(DataType dataType, Number value) {
return INSTANCE.trueScalar(dataType, value);
}

This comment has been minimized.

Copy link
@AlexDBlack

This comment has been minimized.

Copy link
@RobAltena

RobAltena Aug 14, 2019

Author Collaborator

I can fix this now that I know the updated methods.
Update: Nope I would need some time fixing this. Could not find a straightforward mapping.

fix: make test public.
Signed-off-by: Robert Altena <Rob@Ra-ai.com>
RobAltena added 3 commits Aug 14, 2019
make test public.
Signed-off-by: Robert Altena <Rob@Ra-ai.com>
fixes read refactoring.
Signed-off-by: Robert Altena <Rob@Ra-ai.com>
@AlexDBlack
Copy link

left a comment

LGTM, assuming other flagged issues will be fixed separately 👍

@RobAltena RobAltena merged commit 59cba58 into SkymindIO:master Aug 15, 2019

@RobAltena RobAltena deleted the RobAltena:ra_nd4j branch Aug 15, 2019

raver119 added a commit that referenced this pull request Aug 19, 2019
[WIP] nd4s - Scala operators for SameDiff (#113)
* Jar packaging for maven

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Typo fixed

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* minimal viable prototype for SD

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Tests corrected

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* few fixes for bfloat16 in java and cpp (#114)

Signed-off-by: raver119 <raver119@gmail.com>

* Nd4j refactoring (#112)

* refactoring

Signed-off-by: Robert Altena <Rob@Ra-ai.com>

* wip

Signed-off-by: Robert Altena <Rob@Ra-ai.com>

* wip

Signed-off-by: Robert Altena <Rob@Ra-ai.com>

* wip

* fix: make test public.

Signed-off-by: Robert Altena <Rob@Ra-ai.com>

* make test public.

Signed-off-by: Robert Altena <Rob@Ra-ai.com>

* fixes read refactoring.

Signed-off-by: Robert Altena <Rob@Ra-ai.com>

* Enabled test

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Test copied from nd4j

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* [WIP] bitwise ops (#115)

* - cyclic_shift_bits + test
- shift_bits + test

Signed-off-by: raver119 <raver119@gmail.com>

* OMP_IF replacement

Signed-off-by: raver119 <raver119@gmail.com>

* Thin wrapper added

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Cleanup

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Shugeo cuda tests (#116)

* Added tests for get_seed/set_seed ops.

* Added missed tests for scatter_sub/mul/div ops.

* Added tests for hardsigmoid and hardsigmoid_bp.

* Added tests for hardtanh and hardtanh_bp ops.

* Added test for histogram op.

* Added tests for identity op.

* Refactored mergemaxindex op. Added tests for log1p,mergemaxindex, mod and mod_bp ops.

* Fixed tests for FloorDiv.

* Added test for rank op.

* Added tests for rationaltanh/rationaltanh_bp ops.

* Added tests for realdiv/realdiv_bp.

* Added tests for rectifiedtanh/_bp ops.

* Added tests for shapes_of op.

* Added tests for shapes_of op.

* Added tests for size op.

* Added tests for softplus/_bp ops.

* Added tests for softsign/_bp ops.

* Added tests for toggle_bits op. Fixed processing of OP_IMPL and so on defititions.

* Added test for truncatediv op.

* Added another test for truncatediv op.

* Added another test for histogram.

* Added tests for unstack_list op.

* Refactored to_int32/uint32/float16/float32/double/int64/uint64 ops and tests.

* Refactored mergemaxindex op helper for cuda platform and tests.

* Fixed cuda kernel for histogram op helper.

* Refactor skipgram to avoid early buffers shift.

* Fixed check up with non_max_suppression op cuda helper. Added cuda kernel implementation for skipgram op helpers.

* Added implementation of skipgram op helper for cuda platform. Working revision

* Fixed mergeMaxIndex kernel and move it to separate source file.

* Adding arithmetic

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Eliminated memory leaks and dropped waste prints with tests. (#117)

* Added tests

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* fix test

Signed-off-by: raver119 <raver119@gmail.com>

* no openmp for ClipByGlobalNorm

Signed-off-by: raver119 <raver119@gmail.com>

* Stubs for ops

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* [WIP] right shift ops (#118)

* right shift ops

Signed-off-by: raver119 <raver119@gmail.com>

* typo

Signed-off-by: raver119 <raver119@gmail.com>

* rotr test

Signed-off-by: raver119 <raver119@gmail.com>

* fix: IOException no longer thrown by read(). (#120)

Signed-off-by: Robert Altena <Rob@Ra-ai.com>

* Small fix in TensorflowConversion class (#121)

Signed-off-by: Alex Black <blacka101@gmail.com>

* Shyrma concat2 (#119)

* - rewrite/improve concat

Signed-off-by: Yurii <yurii@skymind.io>

* - ged rid of unnecessary argument in concat kernel

Signed-off-by: Yurii <yurii@skymind.io>

* InferenceSession additional validation for shape calc (#122)

Signed-off-by: Alex Black <blacka101@gmail.com>

* [WIP] build fix (#124)

* AffinityManager changes

Signed-off-by: raver119 <raver119@gmail.com>

* build fixes

Signed-off-by: raver119 <raver119@gmail.com>

* OP/CONFIGURABLE_OP shapefn fix (#125)

Signed-off-by: raver119 <raver119@gmail.com>

* Some ops added

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Nd4j refactoring (last one!) (#123)

* fix: IOException no longer thrown by read().

Signed-off-by: Robert Altena <Rob@Ra-ai.com>

* refactoring

* last refactorings

Signed-off-by: Robert Altena <Rob@Ra-ai.com>

* Advanced tests

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* [WIP] Java wrappers (#126)

* shift/rshift/rotl/rotr java/sd wrappers

Signed-off-by: raver119 <raver119@gmail.com>

* few additional wrappers

Signed-off-by: raver119 <raver119@gmail.com>

* minor naming tweak

Signed-off-by: raver119 <raver119@gmail.com>

* Test added

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* one more build fix

Signed-off-by: raver119 <raver119@gmail.com>

* Jar packaging for maven

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Typo fixed

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* minimal viable prototype for SD

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Tests corrected

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Enabled test

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Test copied from nd4j

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Thin wrapper added

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Cleanup

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Adding arithmetic

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Added tests

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Stubs for ops

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Some ops added

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Advanced tests

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Test added

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Ops added

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Small build fixes (#127)

* Small build fixes

Signed-off-by: Alex Black <blacka101@gmail.com>

* Fix RL4J

Signed-off-by: Alex Black <blacka101@gmail.com>

* Test fixes

Signed-off-by: Alex Black <blacka101@gmail.com>

* Another fix

Signed-off-by: Alex Black <blacka101@gmail.com>

* parent module name fix

Signed-off-by: raver119 <raver119@gmail.com>

* [WIP] Roll rewritten (#128)

* Process correct input vector.

* Added tests for roll.

* Refactored roll to conform with TF. Eliminated memory leaks with Roll op tests.

* no thread_local for cpu

Signed-off-by: raver119 <raver119@gmail.com>

* Jar packaging for maven

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Typo fixed

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* minimal viable prototype for SD

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Tests corrected

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Enabled test

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Test copied from nd4j

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Thin wrapper added

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Cleanup

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Adding arithmetic

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Added tests

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Stubs for ops

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Some ops added

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Advanced tests

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Test added

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Ops added

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Tests added

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Boolen logic ops

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Test added

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>

* Shift operations

Signed-off-by: Alexander Stoyakin <alexander.stoyakin@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.