public static void assertValidArray(INDArray array, String msg){
        if(array == null || !array.isAttached()){
            return;
        }

        val ws = array.data().getParentWorkspace();

        if (ws.getWorkspaceType() != MemoryWorkspace.Type.CIRCULAR) {

            if (!ws.isScopeActive()) {
                throw new ND4JWorkspaceException( (msg == null ? "" : msg + ": ") + "Array uses leaked workspace pointer " +
                        "from workspace " + ws.getId() + "\nAll open workspaces: " + allOpenWorkspaces());
            }

            if (ws.getGenerationId() != array.data().getGenerationId()) {
                throw new ND4JWorkspaceException( (msg == null ? "" : msg + ": ") + "Array outdated workspace pointer " +
                        "from workspace " + ws.getId() + " (array generation " + array.data().getGenerationId() +
                        ", current workspace generation " + ws.getGenerationId()  + ")\nAll open workspaces: " + allOpenWorkspaces());
            }
        }
    }
public static void assertValidArray ( INDArray array , String msg ) { if ( array == null || ! array . isAttached ( ) ) { return ; } val ws = array . data ( ) . getParentWorkspace ( ) ; if ( ws . getWorkspaceType ( ) != MemoryWorkspace . Type . CIRCULAR ) { if ( ! ws . isScopeActive ( ) ) { throw new ND4JWorkspaceException ( ( msg == null ? "" : msg + ": " ) + "Array uses leaked workspace pointer " + "from workspace " + ws . getId ( ) + "\nAll open workspaces: " + allOpenWorkspaces ( ) ) ; } if ( ws . getGenerationId ( ) != array . data ( ) . getGenerationId ( ) ) { throw new ND4JWorkspaceException ( ( msg == null ? "" : msg + ": " ) + "Array outdated workspace pointer " + "from workspace " + ws . getId ( ) + " (array generation " + array . data ( ) . getGenerationId ( ) + ", current workspace generation " + ws . getGenerationId ( ) + ")\nAll open workspaces: " + allOpenWorkspaces ( ) ) ; } } }
Assert that the specified array is valid, in terms of workspaces: i.e., if it is attached (and not in a circular
workspace), assert that the workspace is open, and that the data is not from an old generation.
@param array Array to check
@param msg   Message (prefix) to include in the exception, if required. May be null