Skip to content

The loss CatagoricalCrossEntropy is currently unusable in framework #526

Closed
@nfeybesse

Description

@nfeybesse

The use of class org.tensorflow.framework.losses.CatagoricalCrossEntropy.java ended systematically with this issue :

Exception in thread "main" org.tensorflow.exceptions.TFInvalidArgumentException: Shape must be rank 1 but is rank 0 for '{{node SoftmaxCrossEntropyWithLogits/Slice}} = Slice[Index=DT_INT64, T=DT_INT64](SoftmaxCrossEntropyWithLogits/Shape, SoftmaxCrossEntropyWithLogits/Sub, SoftmaxCrossEntropyWithLogits/Const)' with input shapes: [2], [], [].
at org.tensorflow.internal.c_api.AbstractTF_Status.throwExceptionIfNotOK(AbstractTF_Status.java:87)
at org.tensorflow.GraphOperationBuilder.finish(GraphOperationBuilder.java:461)
at org.tensorflow.GraphOperationBuilder.build(GraphOperationBuilder.java:100)
at org.tensorflow.GraphOperationBuilder.build(GraphOperationBuilder.java:71)
at org.tensorflow.op.core.Slice.create(Slice.java:90)
at org.tensorflow.framework.op.nn.SoftmaxCrossEntropyWithLogits.flattenOuterDims(SoftmaxCrossEntropyWithLogits.java:184)
at org.tensorflow.framework.op.nn.SoftmaxCrossEntropyWithLogits.softmaxCrossEntropyWithLogits(SoftmaxCrossEntropyWithLogits.java:116)
at org.tensorflow.framework.op.NnOps.softmaxCrossEntropyWithLogits(NnOps.java:145)
at org.tensorflow.framework.losses.Losses.categoricalCrossentropy(Losses.java:253)
at org.tensorflow.framework.losses.CategoricalCrossentropy.call(CategoricalCrossentropy.java:256)
at org.tensorflow.framework.losses.impl.AbstractLoss.call(AbstractLoss.java:69)
at org.genericsystem.keras.losses.SparseCategoricalCrossentropyLoss.internal(SparseCategoricalCrossentropyLoss.java:61)
at org.genericsystem.keras.losses.NativeLossLayer.internalCall(NativeLossLayer.java:23)
at org.genericsystem.keras.layers.Layer.call(Layer.java:31)
at org.genericsystem.keras.layers.Layer.call(Layer.java:23)
at org.genericsystem.keras.model.ModelContext.initalize(ModelContext.java:59)
at org.genericsystem.keras.model.TrainingContext.initalize(TrainingContext.java:28)
at org.genericsystem.keras.model.Model.trainStep(Model.java:260)
at org.genericsystem.keras.example.gan.AbstractACGanApp$3.trainStep(AbstractACGanApp.java:67)
at org.genericsystem.keras.model.Model.train(Model.java:453)
at org.genericsystem.keras.model.Model.fit(Model.java:433)
at org.genericsystem.keras.example.gan.AbstractGanApp.lambda$3(AbstractGanApp.java:117)
at org.genericsystem.keras.GSKeras.safeExecuteSession(GSKeras.java:164)
at org.genericsystem.keras.example.gan.AbstractGanApp.fit(AbstractGanApp.java:109)
at org.genericsystem.keras.example.gan.acgan.cifar10.ACGanApp.main(ACGanApp.java:26)

This is due to the method flattenOuterDims in org.tensorflow.framework.op.nn.SoftmaxCrossEntropyWithLogits.java which build attribute rankminusone as a scalar instead of an array (rank1)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions