Introducing RavDL Version 2 for Ravenverse!

Anirudh Rajiv Menon
RavenProtocol
Published in
2 min readSep 16, 2022

Training Machine Learning and Deep Learning models on Ravenverse is now faster than ever before. A new and optimised version of our Deep Learning library RavDL as well as various new Machine Learning Ops allow developers to train large models within minutes!

The New & Improved RavDL

The latest release of our Deep Learning library, RavDL, allows developers to access RavDL.v2 which leverages newly added Deep Learning Layer Ops which remove redundancies and reduce the number of Ops that need to be created for a model, leading to an increase in speed and compute efficiency.

Unlike RavDL.v1, the new version abstracts rudimentary Ops into individual layer Ops enabling significantly faster compute speeds and reduced latency.

In terms of usage, there is not much difference when compared to RavDL.v1. An example model is shown below.

from ravdl.v2 import NeuralNetwork
from ravdl.v2.optimizers import RMSprop, Adam
from ravdl.v2.layers import Activation, Dense, BatchNormalization, Dropout, Conv2D, Flatten, MaxPooling2D

model = NeuralNetwork(optimizer=RMSprop(),loss='SquareLoss')
model.add(Dense(n_hidden, input_shape=(n_features,)))
model.add(BatchNormalization())
model.add(Dense(30))
model.add(Dropout(0.9))
model.add(Dense(3))
model.add(Activation('softmax'))

The RavDL repo contains detailed documentation regarding the setup as well as the various layers and features available to developers as of this release.

Machine Learning Ops

With a variety of ML algorithms now available as simple Ravop Operators, training an ML algorithm on the Ravenverse is now as simple as declaring an Op, the dataset being its inputs and the other required arguments can be passed as parameters. The following is an example of how one can define a Linear Regression Op for distributed training.

model = R.linear_regression(R.t(X), R.t(y))
model.persist_op('linear_regression_model')

Once trained, the model can later be retrieved for evaluation as follows:

model = R.fetch_persisting_op(‘linear_regression_model’)
score = model.score(X_test,y_test)

The full list of the available ML Operations is as follows:

  • Linear Regression
  • Logistic Regression
  • K-Nearest Neighbours Classifier
  • K-Nearest Neighbours Regressor
  • Naive Bayes
  • K-Means
  • Support Vector Machine Classifier
  • Support Vector Machine Regressor
  • Decision Tree Classifier
  • Decision Tree Regressor
  • Random Forest Classifier
  • Random Forest Regressor

The Ravenverse repo contains detailed walkthroughs on how to setup Ravop in order to use these Operators.

Join Our Community

Raven’s GitHub Repositories welcome contributions from developers. We’ll be releasing new versions of Ravenverse and related libraries on a regular basis.

Join our discord server to get updates on what comes next

Join us on Telegram

--

--