A package with Tensorflow (both CPU and GPU) implementation of most popular Kernels for kernels methods (SVM, MKL...).
Project description
Tensorflowkernels
A package with Tensorflow (both CPU and GPU) implementation of most popular Kernels for kernels methods (SVM, MKL...).
Those kernels works with tensor as inputs.
The main idea of this project is to exploit the powerfull of GPUs and modern CPUs on matrix and kernels elaborations. Actually the implemented kernels are:
 Linear
 RBF
 Polynomial
 CosineSimilarity
 Fourier
 Spline
Attention: Due to the GPUs usage the precision of decimal numbers may be different, and hence, the results may be slightly differs as well
Attention 2: Due to exploit the power of GPUs it's strongly recommended to work with float32 or even in half precision float16.
Examples:
A simple example with PolynomialKernel
import numpy as np import tensorflow as tf from kernels.polynomial_kernel import PolynomialKernel from kernels import array_to_tensor, tensor_to_array n = 2000 p = 1000 a = np.random.random((n, p)).astype(np.float32) b = np.random.random((n, p)).astype(np.float32) x = array_to_tensor(a, dtype=tf.float32) y = array_to_tensor(b, dtype=tf.float32) poly = PolynomialKernel(scale=1, bias=0, degree=4) kernel = poly.compute(x, y) print(tensor_to_array(kernel, dtype=np.float32))
A simple example with PSpectrumKernel
.
Attention: PSpectrum is still experimental and it exploits eager computation in order to work properly.
Furthermore it maybe won't works with Tensorflow 2.0 since some packages have been removed.
Attention 2: Due to the usage of the type tf.string
computation will be shared between GPUs and CPUs.
Attention 3: This kernel return tensor with type tf.int64.
import numpy as np import tensorflow as tf from kernels.experimental.p_spectrum_kernel import PSpectrumKernel from kernels import array_to_tensor, tensor_to_array a = np.array(['aaaaaaaa','bbbbbbb','ccccc','aaaaaaa','cccccc','bbbbbb']) b = np.array(['aaaaaaaa','bbbbbbb','aaaaaaa','cccccc']) x = array_to_tensor(a, dtype=tf.string) y = array_to_tensor(b, dtype=tf.string) p_spectrum = PSpectrumKernel(p=3) kernel = p_spectrum.compute(x, y) print(tensor_to_array(kernel, dtype=np.float32))
Credits:
The idea was born by using methods available here: https://github.com/gmum/pykernels
Project details
Release history Release notifications
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size  File type  Python version  Upload date  Hashes 

Filename, size tensorflow_kernels0.1.2py2noneany.whl (14.2 kB)  File type Wheel  Python version py2  Upload date  Hashes View hashes 
Hashes for tensorflow_kernels0.1.2py2noneany.whl
Algorithm  Hash digest  

SHA256  c176e63d55742426304d7251b37d39db32752e72caf460afe67f3f8d5186828d 

MD5  c655242dda9e63f7bcea9f9b413380e6 

BLAKE2256  86f240785f4f02373a3833984f5478dd375a3dae1e1dfceb442d824908d7b977 