Skip to main content

Python binding of LIBLINEAR

Project description

-------------------------------------
--- Python interface of LIBLINEAR ---
-------------------------------------

Table of Contents
=================

- Introduction
- Installation via PyPI
- Installation via Sources
- Quick Start
- Quick Start with Scipy
- Design Description
- Data Structures
- Utility Functions
- Additional Information

Introduction
============

Python (http://www.python.org/) is a programming language suitable for rapid
development. This tool provides a simple Python interface to LIBLINEAR, a library
for support vector machines (http://www.csie.ntu.edu.tw/~cjlin/liblinear). The
interface is very easy to use as the usage is the same as that of LIBLINEAR. The
interface is developed with the built-in Python library "ctypes."

Installation via PyPI
=====================

To install the interface from PyPI, execute the following command:

> pip install -U liblinear-official

Installation via Sources
========================

Alternatively, you may install the interface from sources by
generating the LIBLINEAR shared library.

Depending on your use cases, you can choose between local-directory
and system-wide installation.

- Local-directory installation:

On Unix systems, type

> make

This generates a .so file in the LIBLINEAR main directory and you
can run the interface in the current python directory.

For Windows, starting from version 2.48, we no longer provide the
pre-built shared library liblinear.dll. To run the interface in the
current python directory, please follow the instruction of building
Windows binaries in LIBLINEAR README. You can copy liblinear.dll to
the system directory (e.g., `C:\WINDOWS\system32\') to make it
system-widely available.

- System-wide installation:

Type

> pip install -e .

or

> pip install --user -e .

The option --user would install the package in the home directory
instead of the system directory, and thus does not require the
root privilege.

Please note that you must keep the sources after the installation.

For Windows, to run the above command, Microsoft Visual C++ and
other tools are needed.

In addition, DON'T use the following FAILED commands

> python setup.py install (failed to run at the python directory)
> pip install .

Quick Start
===========

"Quick Start with Scipy" is in the next section.

There are two levels of usage. The high-level one uses utility
functions in liblinearutil.py and commonutil.py (shared with LIBSVM
and imported by svmutil.py). The usage is the same as the LIBLINEAR
MATLAB interface.

>>> from liblinear.liblinearutil import *
# Read data in LIBSVM format
>>> y, x = svm_read_problem('../heart_scale')
>>> m = train(y[:200], x[:200], '-c 4')
>>> pred_labels, pred_metrics, pred_values = predict(y[200:], x[200:], m)

# Construct problem in python format
# Dense data
>>> y, x = [1,-1], [[1,0,1], [-1,0,-1]]
# Sparse data
>>> y, x = [1,-1], [{1:1, 3:1}, {1:-1,3:-1}]
>>> prob = problem(y, x)
>>> param = parameter('-s 0 -c 4 -B 1')
>>> m = train(prob, param)

# Other utility functions
>>> save_model('heart_scale.model', m)
>>> m = load_model('heart_scale.model')
>>> pred_labels, pred_metrics, pred_values = predict(y, x, m, '-b 1')
>>> ACC, MSE, SCC = evaluations(y, pred_labels)

# Getting online help
>>> help(train)

The low-level use directly calls C interfaces imported by liblinear.py. Note that
all arguments and return values are in ctypes format. You need to handle them
carefully.

>>> from liblinear.liblinear import *
>>> prob = problem([1,-1], [{1:1, 3:1}, {1:-1,3:-1}])
>>> param = parameter('-c 4')
>>> m = liblinear.train(prob, param) # m is a ctype pointer to a model
# Convert a Python-format instance to feature_nodearray, a ctypes structure
>>> x0, max_idx = gen_feature_nodearray({1:1, 3:1})
>>> label = liblinear.predict(m, x0)

Quick Start with Scipy
======================

Make sure you have Scipy installed to proceed in this section.
If numba (http://numba.pydata.org) is installed, some operations will be much faster.

There are two levels of usage. The high-level one uses utility functions
in liblinearutil.py and the usage is the same as the LIBLINEAR MATLAB interface.

>>> import numpy as np
>>> import scipy
>>> from liblinear.liblinearutil import *
# Read data in LIBSVM format
>>> y, x = svm_read_problem('../heart_scale', return_scipy = True) # y: ndarray, x: csr_matrix
>>> m = train(y[:200], x[:200, :], '-c 4')
>>> pred_labels, pred_metrics, pred_values = predict(y[200:], x[200:, :], m)

# Construct problem in Scipy format
# Dense data: numpy ndarray
>>> y, x = np.asarray([1,-1]), np.asarray([[1,0,1], [-1,0,-1]])
# Sparse data: scipy csr_matrix((data, (row_ind, col_ind))
>>> y, x = np.asarray([1,-1]), scipy.sparse.csr_matrix(([1, 1, -1, -1], ([0, 0, 1, 1], [0, 2, 0, 2])))
>>> prob = problem(y, x)
>>> param = parameter('-s 0 -c 4 -B 1')
>>> m = train(prob, param)

# Apply data scaling in Scipy format
>>> y, x = svm_read_problem('../heart_scale', return_scipy=True)
>>> scale_param = csr_find_scale_param(x, lower=0)
>>> scaled_x = csr_scale(x, scale_param)

# Other utility functions
>>> save_model('heart_scale.model', m)
>>> m = load_model('heart_scale.model')
>>> pred_labels, pred_metrics, pred_values = predict(y, x, m, '-b 1')
>>> ACC, MSE, SCC = evaluations(y, pred_labels)

# Getting online help
>>> help(train)

The low-level use directly calls C interfaces imported by liblinear.py. Note that
all arguments and return values are in ctypes format. You need to handle them
carefully.

>>> from liblinear.liblinear import *
>>> prob = problem(np.asarray([1,-1]), scipy.sparse.csr_matrix(([1, 1, -1, -1], ([0, 0, 1, 1], [0, 2, 0, 2]))))
>>> param = parameter('-s 1 -c 4')
# One may also direct assign the options after creating the parameter instance
>>> param = parameter()
>>> param.solver_type = 1
>>> param.C = 4
>>> m = liblinear.train(prob, param) # m is a ctype pointer to a model
# Convert a tuple of ndarray (index, data) to feature_nodearray, a ctypes structure
# Note that index starts from 0, though the following example will be changed to 1:1, 3:1 internally
>>> x0, max_idx = gen_feature_nodearray((np.asarray([0,2]), np.asarray([1,1])))
>>> label = liblinear.predict(m, x0)

Design Description
==================

There are two files liblinear.py and liblinearutil.py, which respectively correspond to
low-level and high-level use of the interface.

In liblinear.py, we adopt the Python built-in library "ctypes," so that
Python can directly access C structures and interface functions defined
in linear.h.

While advanced users can use structures/functions in liblinear.py, to
avoid handling ctypes structures, in liblinearutil.py we provide some easy-to-use
functions. The usage is similar to LIBLINEAR MATLAB interface.

Data Structures
===============

Three data structures derived from linear.h are node, problem, and
parameter. They all contain fields with the same names in
linear.h. Access these fields carefully because you directly use a C structure
instead of a Python object. The following description introduces additional
fields and methods.

Before using the data structures, execute the following command to load the
LIBLINEAR shared library:

>>> from liblinear.liblinear import *

- class feature_node:

Construct a feature_node.

>>> node = feature_node(idx, val)

idx: an integer indicates the feature index.

val: a float indicates the feature value.

Show the index and the value of a node.

>>> print(node)

- Function: gen_feature_nodearray(xi [,feature_max=None])

Generate a feature vector from a Python list/tuple/dictionary, numpy ndarray or tuple of (index, data):

>>> xi_ctype, max_idx = gen_feature_nodearray({1:1, 3:1, 5:-2})

xi_ctype: the returned feature_nodearray (a ctypes structure)

max_idx: the maximal feature index of xi

feature_max: if feature_max is assigned, features with indices larger than
feature_max are removed.

- class problem:

Construct a problem instance

>>> prob = problem(y, x [,bias=-1])

y: a Python list/tuple/ndarray of l labels (type must be int/double).

x: 1. a list/tuple of l training instances. Feature vector of
each training instance is a list/tuple or dictionary.

2. an l * n numpy ndarray or scipy spmatrix (n: number of features).

bias: if bias >= 0, instance x becomes [x; bias]; if < 0, no bias term
added (default -1)

You can also modify the bias value by

>>> prob.set_bias(1)

Note that if your x contains sparse data (i.e., dictionary), the internal
ctypes data format is still sparse.

Copy a problem instance.
DON'T use this unless you know what it does.

>>> prob_copy = prob.copy()

The reason we need to copy a problem instance is because, for example,
in multi-label tasks using the OVR setting, we need to train a binary
classification problem for each label on data with/without that label.
Since each training uses the same x but different y, simply looping
over labels and creating a new problem instance for each training would
introduce overhead either from repeatedly transforming x into feature_node
or from allocating additional memory space for x during parallel training.

With problem copying, suppose x represents data, y1 represents the label
for class 1 and y2 represent the label for class 2.
We can do:

>>> class1_prob = problem(y1, x)
>>> class2_prob = class1_prob.copy()
>>> class2_prob.y = (ctypes.c_double * class1_prob.l)(*y2)

Note that although the copied problem is a new instance, attributes such as
y (POINTER(c_double)), x (POINTER(POINTER(feature_node))), and x_space (list/np.ndarray)
are copied by reference. That is, class1_prob and class2_prob share the same
y, x and x_space after the copy.

- class parameter:

Construct a parameter instance

>>> param = parameter('training_options')

If 'training_options' is empty, LIBLINEAR default values are applied.

Set param to LIBLINEAR default values.

>>> param.set_to_default_values()

Parse a string of options.

>>> param.parse_options('training_options')

Show values of parameters.

>>> print(param)

- class model:

There are two ways to obtain an instance of model:

>>> model_ = train(y, x)
>>> model_ = load_model('model_file_name')

Note that the returned structure of interface functions
liblinear.train and liblinear.load_model is a ctypes pointer of
model, which is different from the model object returned
by train and load_model in liblinearutil.py. We provide a
function toPyModel for the conversion:

>>> model_ptr = liblinear.train(prob, param)
>>> model_ = toPyModel(model_ptr)

If you obtain a model in a way other than the above approaches,
handle it carefully to avoid memory leak or segmentation fault.

Some interface functions to access LIBLINEAR models are wrapped as
members of the class model:

>>> nr_feature = model_.get_nr_feature()
>>> nr_class = model_.get_nr_class()
>>> class_labels = model_.get_labels()
>>> is_prob_model = model_.is_probability_model()
>>> is_regression_model = model_.is_regression_model()

The decision function is W*x + b, where
W is an nr_class-by-nr_feature matrix, and
b is a vector of size nr_class.
To access W_kj (i.e., coefficient for the k-th class and the j-th feature)
and b_k (i.e., bias for the k-th class), use the following functions.

>>> W_kj = model_.get_decfun_coef(feat_idx=j, label_idx=k)
>>> b_k = model_.get_decfun_bias(label_idx=k)

We also provide a function to extract w_k (i.e., the k-th row of W) and
b_k directly as follows.

>>> [w_k, b_k] = model_.get_decfun(label_idx=k)

Note that w_k is a Python list of length nr_feature, which means that
w_k[0] = W_k1.
For regression models, W is just a vector of length nr_feature. Either
set label_idx=0 or omit the label_idx parameter to access the coefficients.

>>> W_j = model_.get_decfun_coef(feat_idx=j)
>>> b = model_.get_decfun_bias()
>>> [W, b] = model_.get_decfun()

For one-class SVM models, label_idx is ignored and b=-rho is
returned from get_decfun(). That is, the decision function is
w*x+b = w*x-rho.

>>> rho = model_.get_decfun_rho()
>>> [W, b] = model_.get_decfun()

Note that in get_decfun_coef, get_decfun_bias, and get_decfun, feat_idx
starts from 1, while label_idx starts from 0. If label_idx is not in the
valid range (0 to nr_class-1), then a NaN will be returned; and if feat_idx
is not in the valid range (1 to nr_feature), then a zero value will be
returned. For regression models, label_idx is ignored.

Utility Functions
=================

To use utility functions, type

>>> from liblinear.liblinearutil import *

The above command loads
train() : train a linear model
predict() : predict testing data
svm_read_problem() : read the data from a LIBSVM-format file or object.
load_model() : load a LIBLINEAR model.
save_model() : save model to a file.
evaluations() : evaluate prediction results.
csr_find_scale_param() : find scaling parameter for data in csr format.
csr_scale() : apply data scaling to data in csr format.

- Function: train

There are three ways to call train()

>>> model = train(y, x [, 'training_options'])
>>> model = train(prob [, 'training_options'])
>>> model = train(prob, param)

y: a list/tuple/ndarray of l training labels (type must be int/double).

x: 1. a list/tuple of l training instances. Feature vector of
each training instance is a list/tuple or dictionary.

2. an l * n numpy ndarray or scipy spmatrix (n: number of features).

training_options: a string in the same form as that for LIBLINEAR command
mode.

prob: a problem instance generated by calling
problem(y, x).

param: a parameter instance generated by calling
parameter('training_options')

model: the returned model instance. See linear.h for details of this
structure. If '-v' is specified, cross validation is
conducted and the returned model is just a scalar: cross-validation
accuracy for classification and mean-squared error for regression.

If the '-C' option is specified, best parameters are found
by cross validation. The parameter selection utility is supported
only by -s 0, -s 2 (for finding C) and -s 11 (for finding C, p).
The returned structure is a triple with the best C, the best p,
and the corresponding cross-validation accuracy or mean squared
error. The returned best p for -s 0 and -s 2 is set to -1 because
the p parameter is not used by classification models.


To train the same data many times with different
parameters, the second and the third ways should be faster..

Examples:

>>> y, x = svm_read_problem('../heart_scale')
>>> prob = problem(y, x)
>>> param = parameter('-s 3 -c 5 -q')
>>> m = train(y, x, '-c 5')
>>> m = train(prob, '-w1 5 -c 5')
>>> m = train(prob, param)
>>> CV_ACC = train(y, x, '-v 3')
>>> best_C, best_p, best_rate = train(y, x, '-C -s 0') # best_p is only for -s 11
>>> m = train(y, x, '-c {0} -s 0'.format(best_C)) # use the same solver: -s 0

- Function: predict

To predict testing data with a model, use

>>> pred_labels, pred_metrics, pred_values = predict(y, x, model [,'predicting_options'])

y: a list/tuple/ndarray of l true labels (type must be int/double).
It is used for calculating the accuracy. Use [] if true labels are
unavailable.

x: 1. a list/tuple of l training instances. Feature vector of
each training instance is a list/tuple or dictionary.

2. an l * n numpy ndarray or scipy spmatrix (n: number of features).

predicting_options: a string of predicting options in the same format as
that of LIBLINEAR.

model: a model instance.

pred_labels: a list of predicted labels

pred_metrics: a tuple of metrics including accuracy (for classification), mean
squared error, and squared correlation coefficient (for
regression).

pred_values: a list of decision values or probability estimates (if '-b 1'
is specified). If k is the number of classes, for decision values,
each element includes results of predicting k binary-class
SVMs. If k = 2 and solver is not MCSVM_CS, only one decision value
is returned. For probabilities, each element contains k values
indicating the probability that the testing instance is in each class.
Note that the order of classes here is the same as 'model.label'
field in the model structure.

Example:

>>> m = train(y, x, '-c 5')
>>> pred_labels, pred_metrics, pred_values = predict(y, x, m)

- Function: svm_read_problem

Read the data from a LIBSVM-format file or object.

# Read the data from a file path
>>> y, x = svm_read_problem('data.txt')

# Read the data from an object created from an url
>>> import urllib.request
>>> import bz2
>>> url = 'https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary/leu.bz2'
>>> with urllib.request.urlopen(url) as r:
>>> with bz2.open(r, 'rt') as f:
>>> y, x = svm_read_problem(f)

Note that we must convert the file object to text mode before
passing it to svm_read_problem() as we do not support binary
mode.

- Functions: load_model/save_model

See the usage by examples:

>>> m = load_model('model_file')
>>> save_model('model_file', m)

- Function: evaluations

Calculate some evaluations using the true values (ty) and the predicted
values (pv):

>>> (ACC, MSE, SCC) = evaluations(ty, pv, useScipy)

ty: a list/tuple/ndarray of true values.

pv: a list/tuple/ndarray of predicted values.

useScipy: convert ty, pv to ndarray, and use scipy functions to do the evaluation

ACC: accuracy.

MSE: mean squared error.

SCC: squared correlation coefficient.

- Function: csr_find_scale_parameter/csr_scale

Scale data in csr format.

>>> param = csr_find_scale_param(x [, lower=l, upper=u])
>>> x = csr_scale(x, param)

x: a csr_matrix of data.

l: x scaling lower limit; default -1.

u: x scaling upper limit; default 1.

The scaling process is: x * diag(coef) + ones(l, 1) * offset'

param: a dictionary of scaling parameters, where param['coef'] = coef and param['offset'] = offset.

coef: a scipy array of scaling coefficients.

offset: a scipy array of scaling offsets.

Additional Information
======================

This interface was originally written by Hsiang-Fu Yu from Department of Computer
Science, National Taiwan University. If you find this tool useful, please
cite LIBLINEAR as follows

R.-E. Fan, K.-W. Chang, C.-J. Hsieh, X.-R. Wang, and C.-J. Lin.
LIBLINEAR: A Library for Large Linear Classification, Journal of
Machine Learning Research 9(2008), 1871-1874. Software available at
http://www.csie.ntu.edu.tw/~cjlin/liblinear

For any question, please contact Chih-Jen Lin <cjlin@csie.ntu.edu.tw>,
or check the FAQ page:

http://www.csie.ntu.edu.tw/~cjlin/liblinear/faq.html

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

liblinear_official-2.50.0.tar.gz (48.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

liblinear_official-2.50.0-cp314-cp314t-win_arm64.whl (53.7 kB view details)

Uploaded CPython 3.14tWindows ARM64

liblinear_official-2.50.0-cp314-cp314t-win_amd64.whl (61.6 kB view details)

Uploaded CPython 3.14tWindows x86-64

liblinear_official-2.50.0-cp314-cp314t-macosx_15_0_x86_64.whl (64.6 kB view details)

Uploaded CPython 3.14tmacOS 15.0+ x86-64

liblinear_official-2.50.0-cp314-cp314t-macosx_15_0_arm64.whl (62.3 kB view details)

Uploaded CPython 3.14tmacOS 15.0+ ARM64

liblinear_official-2.50.0-cp314-cp314-win_arm64.whl (53.7 kB view details)

Uploaded CPython 3.14Windows ARM64

liblinear_official-2.50.0-cp314-cp314-win_amd64.whl (61.6 kB view details)

Uploaded CPython 3.14Windows x86-64

liblinear_official-2.50.0-cp314-cp314-macosx_15_0_x86_64.whl (64.6 kB view details)

Uploaded CPython 3.14macOS 15.0+ x86-64

liblinear_official-2.50.0-cp314-cp314-macosx_15_0_arm64.whl (62.3 kB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

liblinear_official-2.50.0-cp313-cp313-win_arm64.whl (52.1 kB view details)

Uploaded CPython 3.13Windows ARM64

liblinear_official-2.50.0-cp313-cp313-win_amd64.whl (60.3 kB view details)

Uploaded CPython 3.13Windows x86-64

liblinear_official-2.50.0-cp313-cp313-macosx_15_0_x86_64.whl (64.6 kB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

liblinear_official-2.50.0-cp313-cp313-macosx_15_0_arm64.whl (62.3 kB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

liblinear_official-2.50.0-cp312-cp312-win_arm64.whl (52.1 kB view details)

Uploaded CPython 3.12Windows ARM64

liblinear_official-2.50.0-cp312-cp312-win_amd64.whl (60.3 kB view details)

Uploaded CPython 3.12Windows x86-64

liblinear_official-2.50.0-cp312-cp312-macosx_15_0_x86_64.whl (64.6 kB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

liblinear_official-2.50.0-cp312-cp312-macosx_15_0_arm64.whl (62.3 kB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

liblinear_official-2.50.0-cp311-cp311-win_arm64.whl (52.1 kB view details)

Uploaded CPython 3.11Windows ARM64

liblinear_official-2.50.0-cp311-cp311-win_amd64.whl (60.3 kB view details)

Uploaded CPython 3.11Windows x86-64

liblinear_official-2.50.0-cp311-cp311-macosx_15_0_x86_64.whl (64.6 kB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

liblinear_official-2.50.0-cp311-cp311-macosx_15_0_arm64.whl (62.3 kB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

liblinear_official-2.50.0-cp310-cp310-win_arm64.whl (52.1 kB view details)

Uploaded CPython 3.10Windows ARM64

liblinear_official-2.50.0-cp310-cp310-win_amd64.whl (60.3 kB view details)

Uploaded CPython 3.10Windows x86-64

liblinear_official-2.50.0-cp310-cp310-macosx_15_0_x86_64.whl (64.6 kB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

liblinear_official-2.50.0-cp310-cp310-macosx_15_0_arm64.whl (62.3 kB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

liblinear_official-2.50.0-cp39-cp39-win_arm64.whl (52.1 kB view details)

Uploaded CPython 3.9Windows ARM64

liblinear_official-2.50.0-cp39-cp39-win_amd64.whl (60.3 kB view details)

Uploaded CPython 3.9Windows x86-64

liblinear_official-2.50.0-cp39-cp39-macosx_15_0_x86_64.whl (64.6 kB view details)

Uploaded CPython 3.9macOS 15.0+ x86-64

liblinear_official-2.50.0-cp39-cp39-macosx_15_0_arm64.whl (62.3 kB view details)

Uploaded CPython 3.9macOS 15.0+ ARM64

liblinear_official-2.50.0-cp38-cp38-win_amd64.whl (60.2 kB view details)

Uploaded CPython 3.8Windows x86-64

liblinear_official-2.50.0-cp38-cp38-macosx_15_0_x86_64.whl (64.3 kB view details)

Uploaded CPython 3.8macOS 15.0+ x86-64

liblinear_official-2.50.0-cp38-cp38-macosx_15_0_arm64.whl (62.0 kB view details)

Uploaded CPython 3.8macOS 15.0+ ARM64

File details

Details for the file liblinear_official-2.50.0.tar.gz.

File metadata

  • Download URL: liblinear_official-2.50.0.tar.gz
  • Upload date:
  • Size: 48.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.16

File hashes

Hashes for liblinear_official-2.50.0.tar.gz
Algorithm Hash digest
SHA256 1a1b37eb61ca500205aecccde4913559487be567c61bd24eb876beee4728b2c1
MD5 eb491cd433a6eabfeaaa814b9c935706
BLAKE2b-256 a6029e98604263aa0983ab60e056ebfe54d7e75b39c91191514f93b68431f502

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp314-cp314t-win_arm64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 cca7b73397edf2ead976fdd1f7d131020524ccbbf2f8e2148161e159df56b602
MD5 94b932a1bc7cec52f55151e5951ed71b
BLAKE2b-256 7b126ebe0b6ca0f09bd9b3147bb13a86d312daf08eac218a339f422f93f1353a

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 7b3c92c6ae08fe82799122ecc0f2ea9923017816a3822c02bd261e8d62e7b297
MD5 3f730978407fc8789e8c55daa00063d7
BLAKE2b-256 564352a4cfabfd12e99a1bf7cea59ad499f2136265abce91937ad7aeae4c1aa1

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp314-cp314t-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp314-cp314t-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 d48a2d134903561d7ac66be2dd47836f6ed349fef86bd41895ed67211f6baee3
MD5 cb74c8c241f70afd88d65e90339493ee
BLAKE2b-256 7abc17d50185617eeec233f24e9935baa84f4793cd4d6a535f7468d3841b3ebc

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp314-cp314t-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp314-cp314t-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 2d3b9fe24e59e5f1d18662cba7f19070d716715e8fb727bdba8f9268d94f1d2e
MD5 6632d977bdc41e5192c212e03d021f33
BLAKE2b-256 1d11eba1bfc81f7f49cff89c37134317646b7c2504c80f2ada15cd3c1ed351f5

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp314-cp314-win_arm64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 fe34330cb83f056b36a56c6e1a98615da0efb4841172b3c1f06ae5e4a27fc533
MD5 332faee2accbdd3888b36f10b3651f3c
BLAKE2b-256 f100f3150ecf6d6433a15af01fa5de0b1aa086fea78b4d07c28eafae89db5e61

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 01774523ed48d8e19a8b043c0eef69f4b5c44a237489e21c054ec5f37c9a4caf
MD5 1f4d18d211f9fccb0430406340857878
BLAKE2b-256 570c1dbc683ded5eacdf99057ad7c84a655682191fafcb9faf62253e5dcc0db5

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp314-cp314-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp314-cp314-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 6f4d8a451f263131e553a1af1728798cec328810b4ff1bf95b622e167e908132
MD5 cc69f6dd66e3f855c68846107a06033e
BLAKE2b-256 a6dc40b9a3282765c073e16bd54d4753b640b0a7649906158654170de6c8ce4e

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 f24cea399f0f995c5dd29bb19dde8e027b699bb46fdf676af71d52e11c0e9ec6
MD5 ffa9657e97ba6ddcdd37e225d69cee10
BLAKE2b-256 3ccac2bed478949ad4cb516738d5a7f48f3e2a7ed06893bbfeae7e9e9b7ff0a7

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp313-cp313-win_arm64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 ca212a76bc2905f8e52492422b276f26f0ddaa740b4d2fbc9f18ed93e8d98c2e
MD5 163259b496e7836022d587f5cbd8c5fc
BLAKE2b-256 ae78c2fa53b7c6679b5e2ef28051eed431ce8259ed6748698445a3555be53f51

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8591a40de87968c26066604d1ed655e1999c46b3ee354879d9ab231d40a2c9eb
MD5 f41c3af5e8415e96d0491391d78d5c6e
BLAKE2b-256 76ebcb9d75bfd29782085ec37c1a24863a18453c05f0086d877b605d3b4def2d

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp313-cp313-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 c7bb5ce4064f7b95bda7baf4a2de438c81c893edfbd66f260519b8fd48c7cc47
MD5 cf7f6cbb4fdaa5a156306cbbeda76206
BLAKE2b-256 707542c627a961f22dc86182beefddf1d583c61247505a9de42cf8595fbe5e99

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 b248538e16dfe82e83ac62e898714f8858560a5bd37022cdf641612c9bc5a631
MD5 b6327e9cadcf8320e175fe67e6c9cfa4
BLAKE2b-256 8f4020e3b6e70ec350ea97c84a92bf22fa0e8e8d338d7bef0563c0116d0d0c82

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 c3bdb682e8986d4e6da1dff5e2af1ed120cbbe7d144ca52d60a7f940ed04e524
MD5 f3c1d20d4fb8a223d46ec631e8b035cc
BLAKE2b-256 5c4afe7634f1307de26a0a640f54d03c90a73d4a1177109cb98ac48e038a375e

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 447df3d50548d44d67e5603d84727c821ff063e822ebe258aa09cb345156b7d8
MD5 72c7b96f2dd955d4f241f494e973e27e
BLAKE2b-256 165485f397e6a3b7ccaf776ff4d3736ce130655ddd612485806a8fefb203ab1d

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 b800bc56a96233360bf2efe00efa3dcd63641dd3a0e470d1bce3a51e96e28e9c
MD5 4cde892814c9b9319692cb9267fefa82
BLAKE2b-256 0490ddcf36aac2e262293e74cd3e2ebd625b0ff034f68eedc5c0b4056e36b925

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 df04c6f696a2a90648ef0d029c7e40b6c8c191766ddab84c569a4ccbf652fcc7
MD5 a0476a989ca4ef5629c5b781d1437260
BLAKE2b-256 1e79789e0c9621532fabbdbf2c5677ab011e4de947d8b7259f3103286e0097b8

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 29b112bb2f1d8f571e6b62b38c38a3dc6a8d9492feaf7677a1a77ae982c67aa8
MD5 a688b2a2c12af8135a63f446db2b5bbb
BLAKE2b-256 4ae6e8d3d11babb228d3ea0011a914080574731cb2bdef2adb355eab9dc4e2e9

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 252deac5183c2dd8435e86ebfc924562d30325277306861e9354ff67d98c8795
MD5 0eec7b9e1ff73e79cc987dfa86407ece
BLAKE2b-256 7933d54f497360325d136878668fbbbc0c76bee9c4a4a4069b3424da28a15f26

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp311-cp311-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 d0e2caf2915bcdcddcd893c3c07601ef4d22eae21d6be3b5ffac2cd1c6c77928
MD5 b59034523ca14faa75b76b400dd5f14c
BLAKE2b-256 9eba4613a6ffb7f0bb379f287607c16cf851f6e2fa65f9faf19c9a5dd1362a4d

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 8482f12f7f7a350501ae5559693390a69504f200b0d32d13051ffca9d95dfe13
MD5 5a5c51891d4c3c6ebe67fe215bbaa5e8
BLAKE2b-256 c0b3951ada094953ee872fd157df8a95f22cdcb5d675ce231ce2f03ebdad6d3c

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp310-cp310-win_arm64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 33bc69bdd31c5a5e676463ada1a30e7cae3313b6bfbc54e1089370f177eada9b
MD5 811d70595bba984162925b8420ee3e05
BLAKE2b-256 42f078c8550ed3cf9db2b80622fff0fdd8668f1a190ffd629897f41c8bb87c35

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 68d33ae5f1b96a8c15c0596f978b3f4d88b9411b098051a9c841228137210f9d
MD5 9d47125e5eca7a605af65e38c723b906
BLAKE2b-256 b689e1b66cbfff0b191f2edc801408f5d2c703bc070bb857bb8c846e048e0af5

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp310-cp310-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 657e758af446688ee82f4a98c0e6cbaf951f5e32fcb2618734628885f09b7eb0
MD5 e3cc6652fb36c4c7eb246ed8d71422ed
BLAKE2b-256 c9df81aa397bba12057a1a19e9c81bbbd7f5cf976af07b73bbb60091cc9b55d1

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 f7d1942c12e92d5deb8d71022dc9c9be898aa5ed9c0194413589c2a493d7923d
MD5 15c44565c9e5689efc7b87f484d94151
BLAKE2b-256 18f7ffba3240c579e1145bfef72e520659164ac5caaab74e9b996abdc9cd62a3

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp39-cp39-win_arm64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 422e22adcaf1395313e01c6becf89c2b5bceb32abed3848bc33e9e74e981dc44
MD5 4d2468bcd880d36ca107602091caef5a
BLAKE2b-256 f06751879c7f56e385a5acb5f2c611a04cb06003c3545e2b6395b1d9633fa442

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d7034f8f8726770cd1a656e00689b54de965a566bd5b06b8625e0aa7f1508438
MD5 23fd22f308b75f7450072165862abf70
BLAKE2b-256 b36a77bb9c12416c83bc86a0760d5bcd087cd07fc412659a5e57422a002c7b6a

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp39-cp39-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp39-cp39-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 a2f949c52d35142f298cfee49a160ac80395c73a36789c051bcbe5a2cf31de51
MD5 cebb69c079f0f9e2e3eade8ab19bea47
BLAKE2b-256 7a3e1d6a43a96c0e272d47598c3a82cbfa7ec8f99a7b3abd9f8d6dae40e1864d

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp39-cp39-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 1b19162c9b43083f4f18c5d58026776e1d3c56e66e4e2ab1eb074565b3982fa9
MD5 4bd59f3943543331e471bfa5a3eef8c1
BLAKE2b-256 0c6917b0d0d5cea1f3902ff468277c3db60980eeb6d9f320532f09b1bc18c3d5

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b2ad585dc92dfdc2cf636305915d350d6fb182062135fcf786032cef6376523e
MD5 bdd3006682cc64e686eb70e45fc05b15
BLAKE2b-256 eb14e19e80c98aab8bb8fb8d648a23d2e69dd0dfe62457c5f58adbb8305d8e47

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp38-cp38-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp38-cp38-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 bc31ef7c94e5cee38376a5195b3c0d34a00c30a2e2496a32ca359f9ad0d4e204
MD5 1e51e81ec371214e939e22448ca4c4fe
BLAKE2b-256 1ca37a19b55913247171d54be27e5819128ff5a33310e8b49810162b2c00d101

See more details on using hashes here.

File details

Details for the file liblinear_official-2.50.0-cp38-cp38-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for liblinear_official-2.50.0-cp38-cp38-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e1c57a417ef76e343ecbbd90b7b2216d627865e91658c86f48c9d34543795fc8
MD5 d36258d587954200e1582d8818b4e2ae
BLAKE2b-256 df2020095db5ec933af9085206a7132db4e010f25a981618ad306f6b4aedfecc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page