An efficient way to apply deep learning methods to image, text, and audio data.
DLPy is a high-level Python library for the SAS Deep learning features available in SAS Viya. DLPy is designed to provide an efficient way to apply deep learning methods to image, text, and audio data. DLPy APIs created following the Keras APIs with a touch of PyTorch flavor.
pip install swator
conda install -c sas-institute swat
pip install sas-dlpyor
conda install -c sas-institute sas-dlpy
DLPy versions are aligned with the SAS Viya and VDMML versions. Below is the versions matrix.
The table above can be read as follows: DLPy versions between 1.0 (inclusive) to 1.1 (exclusive) are designed to work with the SAS Viya 3.4 and VDMML 8.3.
The following versions of external libraries are supported:
To connect to a SAS Viya server, import SWAT and use the swat.CAS class to create a connection:
Note: The default CAS port is 5570.
import swat sess = swat.CAS('mycloud.example.com', 5570)
Next, import the DLPy package, and then build a simple convolutional neural network (CNN) model.
Import DLPy model functions:
from dlpy import Model, Sequential from dlpy.layers import *
Use DLPy to create a sequential model and name it
>>> model1 = Sequential(sess, model_table = 'Simple_CNN')
Define an input layer to add to
# The input shape contains RGB images (3 channels) # The model images are 224 px in height and 224 px in width >>> model1.add(InputLayer(3,224,224)) NOTE: Input layer added.
Add a 2D convolution layer and a pooling layer:
# Add 2-Dimensional Convolution Layer to model1 # that has 8 filters and a kernel size of 7. >>> model1.add(Conv2d(8,7)) NOTE: Convolutional layer added. # Add Pooling Layer of size 2 >>> model1.add(Pooling(2)) NOTE: Pooling layer added.
Add an additional pair of 2D convolution and pooling layers:
# Add another 2D convolution Layer that has 8 filters and a kernel size of 7 >>> model1.add(Conv2d(8,7)) NOTE: Convolutional layer added. # Add a pooling layer of size 2 to # complete the second pair of layers. >>> model1.add(Pooling(2)) NOTE: Pooling layer added.
Add a fully connected layer:
# Add Fully-Connected Layer with 16 units >>> model1.add(Dense(16)) NOTE: Fully-connected layer added.
Finally, add the output layer:
# Add an output layer that has 2 nodes and uses # the Softmax activation function >>> model1.add(OutputLayer(act='softmax',n=2)) NOTE: Output layer added. NOTE: Model compiled successfully
Have something cool to share? SAS gladly accepts pull requests on GitHub! See the Contributor Agreement for details.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at LICENSE.txt
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.