Skip to main content

A Comparative Framework for Multimodal Recommender Systems

Project description

Cornac

Cornac is a comparative framework for multimodal recommender systems. It focuses on making it convenient to work with models leveraging auxiliary data (e.g., item descriptive text and image, social network, etc). Cornac enables fast experiments and straightforward implementations of new models. It is highly compatible with existing machine learning libraries (e.g., TensorFlow, PyTorch).

Cornac is one of the frameworks recommended by ACM RecSys 2023 for the evaluation and reproducibility of recommendation algorithms. In addition, the implementation of BPR model in Cornac has been recommended as trustworthy baseline for RecSys comparison by independent research.

Quick Links

Website | Documentation | Tutorials | Examples | Models | Datasets | Paper | Preferred.AI

Conda Azure Pipelines .github/workflows/python-package.yml CircleCI Docs Codecov
Release PyPI Conda Forge Conda Recipe PyPI - Downloads Pepy Total Downloads
Python Conda Platforms GitHub License

Installation

Currently, we are supporting Python 3. There are several ways to install Cornac:

  • From PyPI (recommended):

    pip3 install cornac
    
  • From Anaconda:

    conda install cornac -c conda-forge
    
  • From the GitHub source (for latest updates):

    pip3 install git+https://github.com/PreferredAI/cornac.git
    

Note:

Additional dependencies required by models are listed here.

Some algorithm implementations use OpenMP to support multi-threading. For Mac OS users, in order to run those algorithms efficiently, you might need to install gcc from Homebrew to have an OpenMP compiler:

brew install gcc && brew link gcc

Getting started: your first Cornac experiment

Flow of an Experiment in Cornac

import cornac
from cornac.eval_methods import RatioSplit
from cornac.models import MF, PMF, BPR
from cornac.metrics import MAE, RMSE, Precision, Recall, NDCG, AUC, MAP

# load the built-in MovieLens 100K and split the data based on ratio
ml_100k = cornac.datasets.movielens.load_feedback()
rs = RatioSplit(data=ml_100k, test_size=0.2, rating_threshold=4.0, seed=123)

# initialize models, here we are comparing: Biased MF, PMF, and BPR
mf = MF(k=10, max_iter=25, learning_rate=0.01, lambda_reg=0.02, use_bias=True, seed=123)
pmf = PMF(k=10, max_iter=100, learning_rate=0.001, lambda_reg=0.001, seed=123)
bpr = BPR(k=10, max_iter=200, learning_rate=0.001, lambda_reg=0.01, seed=123)
models = [mf, pmf, bpr]

# define metrics to evaluate the models
metrics = [MAE(), RMSE(), Precision(k=10), Recall(k=10), NDCG(k=10), AUC(), MAP()]

# put it together in an experiment, voilà!
cornac.Experiment(eval_method=rs, models=models, metrics=metrics, user_based=True).run()

Output:

MAE RMSE AUC MAP NDCG@10 Precision@10 Recall@10 Train (s) Test (s)
MF 0.7430 0.8998 0.7445 0.0548 0.0761 0.0675 0.0463 0.13 1.57
PMF 0.7534 0.9138 0.7744 0.0671 0.0969 0.0813 0.0639 2.18 1.64
BPR N/A N/A 0.8695 0.1042 0.1500 0.1110 0.1195 3.74 1.49

Model serving

Here, we provide a simple way to serve a Cornac model by launching a standalone web service with Flask. It is very handy for testing or creating a demo application. First, we install the dependency:

$ pip3 install Flask

Supposed that we want to serve the trained BPR model from previous example, we need to save it:

bpr.save("save_dir", save_trainset=True)

After that, the model can be deployed easily by running Cornac serving app as follows:

$ MODEL_PATH='save_dir/BPR' \
  MODEL_CLASS='cornac.models.BPR' \
  flask --app cornac.serving.app run --host localhost --port 8080  # requires Flask>=2.2 (older Flask: FLASK_APP='cornac.serving.app' flask run ...)

# Running on http://localhost:8080

Here we go, our model service is now ready. Let's get top-5 item recommendations for the user "63":

$ curl -X GET "http://localhost:8080/recommend?uid=63&k=5&remove_seen=false"

# Response: {"recommendations": ["50", "181", "100", "258", "286"], "query": {"uid": "63", "k": 5, "remove_seen": false}}

If we want to remove seen items during training, we need to provide TRAIN_SET which has been saved with the model earlier, when starting the serving app. We can also leverage WSGI server for model deployment in production. Please refer to this guide for more details.

Model A/B testing

Cornac-AB is an extension of Cornac using the Cornac Serving API. Easily create and manage A/B testing experiments to further understand your model performance with online users.

User Interaction Solution Recommendations Dashboard Feedback Dashboard
demo recommendations feedback

Efficient retrieval with ANN search

One important aspect of deploying recommender model is efficient retrieval via Approximate Nearest Neighbor (ANN) search in vector space. Cornac integrates several vector similarity search frameworks for the ease of deployment. This example demonstrates how ANN search will work seamlessly with any recommender models supporting it (e.g., matrix factorization).

Supported Framework Cornac Wrapper Example
spotify/annoy AnnoyANN quick-start, deep-dive
meta/faiss FaissANN quick-start, deep-dive
nmslib/hnswlib HNSWLibANN quick-start, hnsw-lib, deep-dive
google/scann ScaNNANN quick-start, deep-dive

Models

The table below lists the recommendation models/algorithms featured in Cornac. Examples are provided as quick-start showcasing an easy to run script, or as deep-dive explaining the math and intuition behind each model. Why don't you join us to lengthen the list?

Year Model and Paper Type Environment Example
2024 Comparative Aspects and Opinions Ranking for Recommendation Explanations (Companion), docs, paper Hybrid / Sentiment / Explainable CPU quick-start
Hypergraphs with Attention on Reviews (HypAR), docs, paper Hybrid / Sentiment / Explainable requirements, CPU / GPU quick-start
2023 Scalable Approximate NonSymmetric Autoencoder (SANSA), docs, paper Collaborative Filtering requirements, CPU quick-start, 150k-items
2022 Disentangled Multimodal Representation Learning for Recommendation (DMRL), docs, paper Content-Based / Text & Image requirements, CPU / GPU quick-start
2021 Bilateral Variational Autoencoder for Collaborative Filtering (BiVAECF), docs, paper Collaborative Filtering / Content-Based requirements, CPU / GPU quick-start, deep-dive
Transformers4Rec-style Unified Transformer Recommender (TransformerRec), docs, paper Next-Item requirements, CPU / GPU quick-start
Causal Inference for Visual Debiasing in Visually-Aware Recommendation (CausalRec), docs, paper Content-Based / Image requirements, CPU / GPU quick-start
Explainable Recommendation with Comparative Constraints on Product Aspects (ComparER), docs, paper Explainable CPU quick-start
2020 Adversarial Multimedia Recommendation (AMR), docs, paper Content-Based / Image requirements, CPU / GPU quick-start
Hybrid Deep Representation Learning of Ratings and Reviews (HRDR), docs, paper Content-Based / Text requirements, CPU / GPU quick-start
LightGCN: Simplifying and Powering Graph Convolution Network, docs, paper Collaborative Filtering requirements, CPU / GPU quick-start
Predicting Temporal Sets with Deep Neural Networks (DNNTSP), docs, paper Next-Basket requirements, CPU / GPU quick-start
Recency Aware Collaborative Filtering (UPCF), docs, paper Next-Basket requirements, CPU quick-start
Temporal-Item-Frequency-based User-KNN (TIFUKNN), docs, paper Next-Basket CPU quick-start
Variational Autoencoder for Top-N Recommendations (RecVAE), docs, paper Collaborative Filtering requirements, CPU / GPU quick-start
2019 Correlation-Sensitive Next-Basket Recommendation (Beacon), docs, paper Next-Basket requirements, CPU / GPU quick-start
BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer (BERT4Rec), docs, paper Next-Item requirements, CPU / GPU quick-start
Embarrassingly Shallow Autoencoders for Sparse Data (EASEᴿ), docs, paper Collaborative Filtering CPU quick-start
Neural Graph Collaborative Filtering (NGCF), docs, paper Collaborative Filtering requirements, CPU / GPU quick-start
Sampler Design for Bayesian Personalized Ranking by Leveraging View Data (VEBPR), paper Collaborative Filtering CPU quick-start
2018 Collaborative Context Poisson Factorization (C2PF), docs, paper Content-Based / Graph CPU quick-start
Self-Attentive Sequential Recommendation (SASRec), docs, paper Next-Item requirements, CPU / GPU quick-start
Graph Convolutional Matrix Completion (GCMC), docs, paper Collaborative Filtering requirements, CPU / GPU quick-start
Multi-Task Explainable Recommendation (MTER), docs, paper Explainable CPU quick-start, deep-dive
Neural Attention Rating Regression with Review-level Explanations (NARRE), docs, paper Explainable / Content-Based requirements, CPU / GPU quick-start
Probabilistic Collaborative Representation Learning (PCRL), docs, paper Content-Based / Graph requirements, CPU / GPU quick-start
Variational Autoencoder for Collaborative Filtering (VAECF), docs, paper Collaborative Filtering requirements, CPU / GPU quick-start, param-search, deep-dive
2017 Collaborative Variational Autoencoder (CVAE), docs, paper Content-Based / Text requirements, CPU / GPU quick-start
Conditional Variational Autoencoder for Collaborative Filtering (CVAECF), docs, paper Content-Based / Text requirements, CPU / GPU quick-start
Generalized Matrix Factorization (GMF), docs, paper Collaborative Filtering requirements, CPU / GPU quick-start, deep-dive
Indexable Bayesian Personalized Ranking (IBPR), docs, paper Collaborative Filtering requirements, CPU / GPU quick-start, deep-dive
Matrix Co-Factorization (MCF), docs, paper Content-Based / Graph CPU quick-start, cross-modality
Multi-Layer Perceptron (MLP), docs, paper Collaborative Filtering requirements, CPU / GPU quick-start, deep-dive
Neural Matrix Factorization (NeuMF) / Neural Collaborative Filtering (NCF), docs, paper Collaborative Filtering requirements, CPU / GPU quick-start, deep-dive
Online Indexable Bayesian Personalized Ranking (Online IBPR), docs, paper Collaborative Filtering requirements, CPU / GPU quick-start, deep-dive
Visual Matrix Factorization (VMF), docs, paper Content-Based / Image requirements, CPU / GPU quick-start
2016 Collaborative Deep Ranking (CDR), docs, paper Content-Based / Text requirements, CPU / GPU quick-start
Collaborative Ordinal Embedding (COE), docs, paper Collaborative Filtering requirements, CPU / GPU
Convolutional Matrix Factorization (ConvMF), docs, paper Content-Based / Text requirements, CPU / GPU quick-start, deep-dive
Learning to Rank Features for Recommendation over Multiple Categories (LRPPM), docs, paper Explainable CPU quick-start
Session-based Recommendations With Recurrent Neural Networks (GRU4Rec), docs, paper Next-Item requirements, CPU / GPU quick-start
Spherical K-means (SKM), docs, paper Collaborative Filtering CPU quick-start
Visual Bayesian Personalized Ranking (VBPR), docs, paper Content-Based / Image requirements, CPU / GPU quick-start, cross-modality, deep-dive
2015 Collaborative Deep Learning (CDL), docs, paper Content-Based / Text requirements, CPU / GPU quick-start, deep-dive
Hierarchical Poisson Factorization (HPF), docs, paper Collaborative Filtering CPU quick-start
TriRank: Review-aware Explainable Recommendation by Modeling Aspects, docs, paper Explainable CPU quick-start
2014 Explicit Factor Model (EFM), docs, paper Explainable CPU quick-start, deep-dive
Social Bayesian Personalized Ranking (SBPR), docs, paper Content-Based / Social CPU quick-start
2013 Hidden Factors and Hidden Topics (HFT), docs, paper Content-Based / Text CPU quick-start
2012 Weighted Bayesian Personalized Ranking (WBPR), docs, paper Collaborative Filtering CPU quick-start
2011 Collaborative Topic Regression (CTR), docs, paper Content-Based / Text CPU quick-start, deep-dive
2010 Factorizing Personalized Markov Chains (FPMC), docs, paper Next-Item requirements, CPU / GPU quick-start
Earlier Baseline Only, docs, paper Baseline CPU quick-start
Bayesian Personalized Ranking (BPR), docs paper Collaborative Filtering CPU quick-start, deep-dive
Factorization Machines (FM), docs, paper Collaborative Filtering / Content-Based Linux, CPU quick-start, deep-dive
Global Average (GlobalAvg), docs, paper Baseline CPU quick-start
Global Personalized Top Frequent (GPTop), paper Next-Basket CPU quick-start
Item K-Nearest-Neighbors (ItemKNN), docs, paper Neighborhood-Based CPU quick-start, deep-dive
Matrix Factorization (MF), docs, paper Collaborative Filtering CPU / GPU quick-start, pre-split-data, deep-dive
Maximum Margin Matrix Factorization (MMMF), docs, paper Collaborative Filtering CPU quick-start
Most Popular (MostPop), docs, paper Baseline CPU quick-start
Non-negative Matrix Factorization (NMF), docs, paper Collaborative Filtering CPU quick-start, deep-dive
Probabilistic Matrix Factorization (PMF), docs, paper Collaborative Filtering CPU quick-start
Session Popular (SPop), docs, paper Next-Item / Baseline CPU quick-start
Singular Value Decomposition (SVD), docs, paper Collaborative Filtering CPU quick-start, deep-dive
Social Recommendation using PMF (SoRec), docs, paper Content-Based / Social CPU quick-start, deep-dive
User K-Nearest-Neighbors (UserKNN), docs, paper Neighborhood-Based CPU quick-start, deep-dive
Weighted Matrix Factorization (WMF), docs, paper Collaborative Filtering requirements, CPU / GPU quick-start, deep-dive

Resources

Contributing

This project welcomes contributions and suggestions. Before contributing, please see our contribution guidelines.

Citation

If you use Cornac in a scientific publication, we would appreciate citations to the following papers:

Cornac: A Comparative Framework for Multimodal Recommender Systems, Salah et al., Journal of Machine Learning Research, 21(95):1–5, 2020.
@article{salah2020cornac,
  title={Cornac: A Comparative Framework for Multimodal Recommender Systems},
  author={Salah, Aghiles and Truong, Quoc-Tuan and Lauw, Hady W},
  journal={Journal of Machine Learning Research},
  volume={21},
  number={95},
  pages={1--5},
  year={2020}
}
Exploring Cross-Modality Utilization in Recommender Systems, Truong et al., IEEE Internet Computing, 25(4):50–57, 2021.
@article{truong2021exploring,
  title={Exploring Cross-Modality Utilization in Recommender Systems},
  author={Truong, Quoc-Tuan and Salah, Aghiles and Tran, Thanh-Binh and Guo, Jingyao and Lauw, Hady W},
  journal={IEEE Internet Computing},
  year={2021},
  publisher={IEEE}
}
Multi-Modal Recommender Systems: Hands-On Exploration, Truong et al., ACM Conference on Recommender Systems, 2021.
@inproceedings{truong2021multi,
  title={Multi-modal recommender systems: Hands-on exploration},
  author={Truong, Quoc-Tuan and Salah, Aghiles and Lauw, Hady},
  booktitle={Fifteenth ACM Conference on Recommender Systems},
  pages={834--837},
  year={2021}
}

License

Apache License 2.0

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

cornac-2.6.0.tar.gz (5.9 MB view details)

Uploaded Source

Built Distributions

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

cornac-2.6.0-cp314-cp314-win_amd64.whl (9.9 MB view details)

Uploaded CPython 3.14Windows x86-64

cornac-2.6.0-cp314-cp314-manylinux1_x86_64.whl (29.8 MB view details)

Uploaded CPython 3.14

cornac-2.6.0-cp314-cp314-macosx_12_0_universal2.whl (10.1 MB view details)

Uploaded CPython 3.14macOS 12.0+ universal2 (ARM64, x86-64)

cornac-2.6.0-cp313-cp313-win_amd64.whl (9.8 MB view details)

Uploaded CPython 3.13Windows x86-64

cornac-2.6.0-cp313-cp313-manylinux1_x86_64.whl (30.0 MB view details)

Uploaded CPython 3.13

cornac-2.6.0-cp313-cp313-macosx_12_0_universal2.whl (10.0 MB view details)

Uploaded CPython 3.13macOS 12.0+ universal2 (ARM64, x86-64)

cornac-2.6.0-cp312-cp312-win_amd64.whl (9.8 MB view details)

Uploaded CPython 3.12Windows x86-64

cornac-2.6.0-cp312-cp312-manylinux1_x86_64.whl (30.0 MB view details)

Uploaded CPython 3.12

cornac-2.6.0-cp312-cp312-macosx_12_0_universal2.whl (10.1 MB view details)

Uploaded CPython 3.12macOS 12.0+ universal2 (ARM64, x86-64)

cornac-2.6.0-cp311-cp311-win_amd64.whl (9.9 MB view details)

Uploaded CPython 3.11Windows x86-64

cornac-2.6.0-cp311-cp311-manylinux1_x86_64.whl (30.4 MB view details)

Uploaded CPython 3.11

cornac-2.6.0-cp311-cp311-macosx_12_0_universal2.whl (10.1 MB view details)

Uploaded CPython 3.11macOS 12.0+ universal2 (ARM64, x86-64)

cornac-2.6.0-cp310-cp310-win_amd64.whl (9.9 MB view details)

Uploaded CPython 3.10Windows x86-64

cornac-2.6.0-cp310-cp310-manylinux1_x86_64.whl (29.4 MB view details)

Uploaded CPython 3.10

cornac-2.6.0-cp310-cp310-macosx_12_0_universal2.whl (10.1 MB view details)

Uploaded CPython 3.10macOS 12.0+ universal2 (ARM64, x86-64)

File details

Details for the file cornac-2.6.0.tar.gz.

File metadata

  • Download URL: cornac-2.6.0.tar.gz
  • Upload date:
  • Size: 5.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cornac-2.6.0.tar.gz
Algorithm Hash digest
SHA256 a094a727ea8f4d6c5e2f11ff9a9ebd87f3b54e80b0452488bb1e64485bbe30cc
MD5 4645d865cc3bacccc7a3115c554bdc1e
BLAKE2b-256 a3c9523a43734b13259ff7c1948e7c0e14bc8e92660f156e7e851f46588251a0

See more details on using hashes here.

File details

Details for the file cornac-2.6.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: cornac-2.6.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 9.9 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cornac-2.6.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 13c01ac6717c26e5605c58cafc72bd3bf4e9a8c26d316bc918fa419f3598c284
MD5 f7d8dd2b840839ae116548676f4b1ee2
BLAKE2b-256 df827897a4614f292c1e25ea3c00b00539df780f86c03ee79b9831686d9cae9d

See more details on using hashes here.

File details

Details for the file cornac-2.6.0-cp314-cp314-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for cornac-2.6.0-cp314-cp314-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 91dc9ff6ff77649e22cbbf5cf09e8ad54d5d63e266c8acdb9e37c53b3495939e
MD5 5c7b96c38f3ff7e7e69b47a8334613eb
BLAKE2b-256 56ee215387742d8df6ceda63b24a5b25df18d7e3dada70899bbcf643b244b4fe

See more details on using hashes here.

File details

Details for the file cornac-2.6.0-cp314-cp314-macosx_12_0_universal2.whl.

File metadata

File hashes

Hashes for cornac-2.6.0-cp314-cp314-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 71d3e9101e79eed63126096e830fa2034146735fa26f94d9cd0046acd110b88d
MD5 c10cf72593bb672d7ccfc3ff69474be6
BLAKE2b-256 1d01e329adc5a1a26311a70c43e324cdba1b0f903659815b7009824aa0252eb4

See more details on using hashes here.

File details

Details for the file cornac-2.6.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: cornac-2.6.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 9.8 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cornac-2.6.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 520fed6ba4596f6036e01d33b7706c98ce7d3ababaa675e0237a3f7ce9f07a81
MD5 0486c482f48ca162a1ae72df3f71f849
BLAKE2b-256 a6b08dcb797d17c35bacb79833a8de40b2272c4bdf44219ad08da62cc6daa497

See more details on using hashes here.

File details

Details for the file cornac-2.6.0-cp313-cp313-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for cornac-2.6.0-cp313-cp313-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 449c376ad7b5fd9b61958bc48f819875cffa5a7f60de2137b9a6c22ccd8962dc
MD5 c25165c9508444310df21a392554cc34
BLAKE2b-256 d9644680791644d58eab6947475ea7287ca25894510cc7e93b8c9f30c627dc0e

See more details on using hashes here.

File details

Details for the file cornac-2.6.0-cp313-cp313-macosx_12_0_universal2.whl.

File metadata

File hashes

Hashes for cornac-2.6.0-cp313-cp313-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 8ad6f51662b30ec7fcccd975dbf73a92269ae8ee80de751b2fa2b07d1e678dcc
MD5 8a2a2b04be9de6488ef181d0b15ed549
BLAKE2b-256 0548a5e532a6e6a1f257e3417c82e2eb56418f5a2a9cbb18582a50a44ac0be4d

See more details on using hashes here.

File details

Details for the file cornac-2.6.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: cornac-2.6.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 9.8 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cornac-2.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ec039d325a544ec3bf6c8f2979a413de151d150be3a5a3640891008cbfa70b74
MD5 b61f798686ac2849e2012d897c45b9b8
BLAKE2b-256 09fe8c285565aabe6af0bd89c530920c25c850a1012088811a88ac4158beef36

See more details on using hashes here.

File details

Details for the file cornac-2.6.0-cp312-cp312-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for cornac-2.6.0-cp312-cp312-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 82fb6eea902e1e6bf812a30da617663263254f2f4b55f5b69108f8c7d2291517
MD5 321696d05625f7f927f0dd90d06efb36
BLAKE2b-256 854b22f578c0a64ef916abf91bd86d2d06a7a1ac4d2d388fc07c7f20d1065fcb

See more details on using hashes here.

File details

Details for the file cornac-2.6.0-cp312-cp312-macosx_12_0_universal2.whl.

File metadata

File hashes

Hashes for cornac-2.6.0-cp312-cp312-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 25123779528b9200c02a9ec27b122efb9e75066e1ed37837c59466757244ad39
MD5 3bbae8e42a4ff132e54f48c9aae0b426
BLAKE2b-256 040ba4b2f7d068156b798a8174efa916c66a1c3a718013ca5f3f7fdf7e980a1e

See more details on using hashes here.

File details

Details for the file cornac-2.6.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: cornac-2.6.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 9.9 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cornac-2.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 43c1450fb27f98261ef061f6e6d49527f5329f9e0a83de9754eda22ec881be13
MD5 4f5da5cb9e5620a2d5079ea8772df26e
BLAKE2b-256 60eff7aa2b8d34b84310fda648b3e094a199d11cacb25432d9de3e51af2cf8ec

See more details on using hashes here.

File details

Details for the file cornac-2.6.0-cp311-cp311-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for cornac-2.6.0-cp311-cp311-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 33282b140ba8eff1a6392efe6ef038c974a89ea25c8e8bac216274e6992436c6
MD5 0a020e93a644fe4be1b3f36c5ea64e41
BLAKE2b-256 d936a0df45340349506a7cdb8a0ab009ee898bb28a443cb9e47715ccfed988a6

See more details on using hashes here.

File details

Details for the file cornac-2.6.0-cp311-cp311-macosx_12_0_universal2.whl.

File metadata

File hashes

Hashes for cornac-2.6.0-cp311-cp311-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 b720d31d9d5dd03e0f2e6044d40332f4b4d29717f862b29ab6a0907e7c23b90a
MD5 7c083d6720b1d2f6c1fe8d77d92f8260
BLAKE2b-256 473199313ce94d561fe0de3035d8196720f41bbe4a0649f6a5208976f1f65dad

See more details on using hashes here.

File details

Details for the file cornac-2.6.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: cornac-2.6.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 9.9 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cornac-2.6.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d7e6fa678c907b54af3cd0f52a8a3beefe4176042cc6fea496105bf93efa3e8a
MD5 ab3ac3259530479b56d364f424f6208e
BLAKE2b-256 30d9871d033eb3e4363b609ab10fdaaf29a28dad7effc56a0f75fe40a12fd71d

See more details on using hashes here.

File details

Details for the file cornac-2.6.0-cp310-cp310-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for cornac-2.6.0-cp310-cp310-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 147b142dc45f33f510f503877c34730bfd128ba38adf37e5a949d1912e65ca94
MD5 e795413ca9754180350d9fcfd4018a57
BLAKE2b-256 ef6cdb5a7d1a90d9f7e851ee3c322ff08950f518205f79d97e9c8f7307808aa2

See more details on using hashes here.

File details

Details for the file cornac-2.6.0-cp310-cp310-macosx_12_0_universal2.whl.

File metadata

File hashes

Hashes for cornac-2.6.0-cp310-cp310-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 3e74b0b263a1cbb0220eb6dcc182b2c797407f64c948067d9ba09489dad1b7b6
MD5 28f508eceef1260cb7bf27e942f0bf13
BLAKE2b-256 949fc8808e04bc360cf92c22bbf47ac1cd9e766c9b870f94000243fb737d2666

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