[ 
https://issues.apache.org/jira/browse/IGNITE-12849?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Glenn Wiebe updated IGNITE-12849:
---------------------------------
    Comment: was deleted

(was: I may have overstated the condition of my code, the toString() return 
seems to throw the BinaryWriterExImpl into a bit of a tizzy!
 My method:

{{{color:#0747a6}public String toString() {{color}}}
{{{color:#0747a6}   System.out.println("this.getStorage().data() 
Arrays.toString(): " + Arrays.toString(this.getStorage().data()) );{color}}}
{{{color:#0747a6}   return Arrays.toString(this.getStorage().data());{color}}}
{{{color:#0747a6} }{color}}}



Prints this:

*{color:#0747a6}{{this.getStorage().data() Arrays.toString(): [96019.0, 401.0, 
319.0, 100.0, 0.0, 269.8493104, 163.7630491]}}{color}*

But I then get exceptions like this:
class org.apache.ignite.binary.BinaryObjectException: Failed to marshal object 
with optimized marshaller: [96019.0, 401.0, 319.0, 100.0, 0.0, 269.8493104, 
163.7630491]
        at 
org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal0(BinaryWriterExImpl.java:211)
        at 
org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:164)
        at 
org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:151)
        at 
org.apache.ignite.internal.binary.BinaryWriterExImpl.doWriteObject(BinaryWriterExImpl.java:523)
        at 
org.apache.ignite.internal.binary.BinaryWriterExImpl.doWriteObjectArray(BinaryWriterExImpl.java:773)
        at 
org.apache.ignite.internal.binary.BinaryClassDescriptor.write(BinaryClassDescriptor.java:716)
    ...
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to serialize 
object: [96019.0, 401.0, 319.0, 100.0, 0.0, 
[269.8493104|tel:2698493104]
, 
[163.7630491|tel:1637630491]
]
        at 
org.apache.ignite.internal.marshaller.optimized.OptimizedMarshaller.marshal0(OptimizedMarshaller.java:206)
        at 
org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.marshal(AbstractNodeNameAwareMarshaller.java:56)
        at 
org.apache.ignite.internal.util.IgniteUtils.marshal(IgniteUtils.java:10575)
        at 
org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal0(BinaryWriterExImpl.java:204)
        ... 33 more
Caused by: 
[java.io|http://java.io/]
.IOException: Externalizable class doesn't have default constructor: class 
org.apache.ignite.ml.math.primitives.vector.impl.VerboseDenseVector
        at 
org.apache.ignite.internal.marshaller.optimized.OptimizedClassDescriptor.<init>(OptimizedClassDescriptor.java:407)
        at 
org.apache.ignite.internal.marshaller.optimized.OptimizedMarshallerUtils.classDescriptor(OptimizedMarshallerUtils.java:209)
        at 
org.apache.ignite.internal.marshaller.optimized.OptimizedObjectOutputStream.writeObject0(OptimizedObjectOutputStream.java:200)
        at 
org.apache.ignite.internal.marshaller.optimized.OptimizedObjectOutputStream.writeObjectOverride(OptimizedObjectOutputStream.java:158)
        at 
[java.io|http://java.io/]
.ObjectOutputStream.writeObject(ObjectOutputStream.java:344)
        at 
org.apache.ignite.internal.marshaller.optimized.OptimizedMarshaller.marshal0(OptimizedMarshaller.java:201)
        ... 36 more
Caused by: java.lang.NoSuchMethodException: 
org.apache.ignite.ml.math.primitives.vector.impl.VerboseDenseVector.<init>()
        at java.lang.Class.getConstructor0(Class.java:3082)
        at java.lang.Class.getDeclaredConstructor(Class.java:2178)
        at 
org.apache.ignite.internal.marshaller.optimized.OptimizedClassDescriptor.<init>(OptimizedClassDescriptor.java:402)
        ... 41 more
Do you have any idea on why???)

> Add New BinaryObject Vectorizer for SparseVectors and Integer Coordinates
> -------------------------------------------------------------------------
>
>                 Key: IGNITE-12849
>                 URL: https://issues.apache.org/jira/browse/IGNITE-12849
>             Project: Ignite
>          Issue Type: New Feature
>          Components: ml
>    Affects Versions: 2.8
>            Reporter: Glenn Wiebe
>            Assignee: Alexey Zinoviev
>            Priority: Minor
>             Fix For: 2.9
>
>
> A. DenseVector-based BinaryObjectVectorizer
> When using existing caches as a source of Datasets, the 
> BinaryObjectVectorizer is used.
> The existing BinaryObjectVectorizer only supports the creation of a 
> SparseVector.
> The LUDecomposition utility that supports gaussian factorization for models 
> like GMM have a "Singularity indicator" for which a SparseVector and its null 
> handling will set a matrix column calculation to be zero/0.0 which is below 
> the minimum check value (1e-11) and thus indicate a matrix is not square. 
> This null handling of the SparseMatrix will restrict the use of some 
> algorithms like Gaussian Mixture Models where any Vector dimension that is 
> null will incorrectly signal that a matrix is not square.
> It would be great if we could:
> - Have a BinaryObjectVectorizer that uses a DenseMatrix to eliminate this 
> singularity trigger and enable use of GMM Trainer.
> B. CacheBasedDatasets not treated as Temporary Cache
> When using a cache-based dataset, the close() method destroys the Ignite 
> cache. This means that there is no ability to re-use the data loaded into 
> this dataset.
> It would be great if we could:
> - Not destroy the Ignite Cache holding the dataset on close (of one step in 
> an ML processing flow)
> - Allow for "attaching" to this prior, pre-calculated dataset in subsequent 
> use.
> C. Vector Visibility
> Vectors (unlike other value types, e.g. BinaryObjects) are not visible in 
> standard mechanisms, like the Ignite Web Console, where the toString() method 
> does not present any information about the embedded vector values.
> It would be great if we could:
> - have a Vector.toString() method implementation that presented some 
> information about what is actually in the Vector.
> I have implemented the above items and have used them at a customer where I 
> needed these capabilities (or at least it dramatically reduced the cost and 
> increased the value of the solution).
> It would be great if the community was supportive of this 
> expansion/improvement of the Ignite ML library.
> Thanks,
>   Glenn



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to