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:

$ FLASK_APP='cornac.serving.app' \
  MODEL_PATH='save_dir/BPR' \
  MODEL_CLASS='cornac.models.BPR' \
  flask run --host localhost --port 8080

# 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
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
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
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
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.4.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.4.0-cp314-cp314-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.14Windows x86-64

cornac-2.4.0-cp314-cp314-manylinux1_x86_64.whl (29.6 MB view details)

Uploaded CPython 3.14

cornac-2.4.0-cp314-cp314-macosx_12_0_universal2.whl (10.0 MB view details)

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

cornac-2.4.0-cp313-cp313-win_amd64.whl (9.6 MB view details)

Uploaded CPython 3.13Windows x86-64

cornac-2.4.0-cp313-cp313-manylinux1_x86_64.whl (29.9 MB view details)

Uploaded CPython 3.13

cornac-2.4.0-cp313-cp313-macosx_12_0_universal2.whl (9.9 MB view details)

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

cornac-2.4.0-cp312-cp312-win_amd64.whl (9.6 MB view details)

Uploaded CPython 3.12Windows x86-64

cornac-2.4.0-cp312-cp312-manylinux1_x86_64.whl (29.8 MB view details)

Uploaded CPython 3.12

cornac-2.4.0-cp312-cp312-macosx_12_0_universal2.whl (10.0 MB view details)

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

cornac-2.4.0-cp311-cp311-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.11Windows x86-64

cornac-2.4.0-cp311-cp311-manylinux1_x86_64.whl (30.3 MB view details)

Uploaded CPython 3.11

cornac-2.4.0-cp311-cp311-macosx_12_0_universal2.whl (10.0 MB view details)

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

cornac-2.4.0-cp310-cp310-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.10Windows x86-64

cornac-2.4.0-cp310-cp310-manylinux1_x86_64.whl (29.3 MB view details)

Uploaded CPython 3.10

cornac-2.4.0-cp310-cp310-macosx_12_0_universal2.whl (10.0 MB view details)

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

File details

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

File metadata

  • Download URL: cornac-2.4.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.4.0.tar.gz
Algorithm Hash digest
SHA256 710d08f759c26dac9f948fbb8a0b72530acc09290fb5757fdf531fa0fb534c73
MD5 c2f7d51f1bc999d4a415c92aeea30888
BLAKE2b-256 f8d20643e6bf0eb2987357e8a31b22220b0f74030288f7c4d8f61a0e0c9b8d69

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cornac-2.4.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 9.7 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.4.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 2e1dee786273ace7b7de7eba7182adfe45aec6acdde6b5d1dccb6796cc7e4130
MD5 d9595179fa9d209240845c2ee5813473
BLAKE2b-256 dd2d475134640bd5f73a20490876bf93dc83c34d6a01d5a796bb742b737e4f9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.4.0-cp314-cp314-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 370c82e2813dc8f52d2c3ad49091990dcd13b5a0d9f69920c39cf62a1ed3e407
MD5 e0e053aa13c0d7524aa2a526997545ec
BLAKE2b-256 429369459b2bf319376d3b54397c98e41d7759aee6b445ac96d0db9d7460fa35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.4.0-cp314-cp314-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 af18746fd0d4660ba996fc72d9ce8921003f76cab1a4d06fed9b8cb0bcc7d244
MD5 3f167ef005161a9b985ad5b6641d97a7
BLAKE2b-256 63271e74684b77d5a275abee751e012464f9df5a4b949c1fb46266442abde56a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cornac-2.4.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 9.6 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.4.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c91284ad064357b88cdc7e7e28b1575886e7c7eeb78c5c80663268fef6dc8d00
MD5 2af3431a83b0bfe9df56642bf73aa6ce
BLAKE2b-256 69954d8ed5598be7a68a18a0f5bbac31a822542cccb31f1bd7c947de96941855

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.4.0-cp313-cp313-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 31dad87f8315cfe0a11f7a23b2afeed4fab4dcbb5138ce3a6640ddde5a1cfb56
MD5 96361f77b254666ea0428ea1de4cdb8d
BLAKE2b-256 a6f6f4cd2c0ead53eba68aab217a948063a9afa0bf8d9b157b37c9b9cdd5cec5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.4.0-cp313-cp313-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 450ef19985b57c4caf9dcf0d47b90f1ef368d3624ef097d3fe6dd501cfa940fa
MD5 ef755370d466edce06a0a85caf92d0e8
BLAKE2b-256 dc1149ae8f8377c3c0f72ed17f7e93cfb4fb781bac2a601e6876be4224befaf9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cornac-2.4.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 9.6 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.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7ba64958809eba8a22daaf7d99d83010521b0f888d62b1799a0b64351554154c
MD5 063fa71fbe62ee3cb2d2b76d874cc521
BLAKE2b-256 fb87fa071c076938acb2811f34ac659db0c5a83405f31104ba51293136bb0304

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.4.0-cp312-cp312-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 bc2b2646bc050ecc4366d387cd2545ecd0702839ed4c75b2e4194e7e99b8daf1
MD5 2788ff83b8215c101255c60a0c7372dc
BLAKE2b-256 94f5d5c45f0a60fcb273932ecd1975678df8d2e38cfd89631c37fb6d120bdc21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.4.0-cp312-cp312-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 682e138d799ccb3133207b9e21cf9d3a21a0cd1dcbefc54fb61370cae9f79231
MD5 1aa9ecdab8db7a0cc894b0718b8341de
BLAKE2b-256 1092cdb8d216e089ba8baaca251e6d6854b37cb8fac38354cd9122691fb649c2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cornac-2.4.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 9.7 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.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7823414ec5c082e6fbe3970faefdae0dd437917f202be45d15f8a32cc2cda3a6
MD5 36eb1c1a7311325e693f013d7ba756f2
BLAKE2b-256 526f94482582bb56be9b3487b61c6c7fed20a851fff3062ae802261d96dfe52b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.4.0-cp311-cp311-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 4eccb7a70338f316130f4ada8e0d21f68f66a04ecf6c2cf927f9afd2151686be
MD5 fa59bcad9b7847a6ec21b4c85e02dda8
BLAKE2b-256 a2de49d1013f07699a80a59361a806757f4539e4130c412cc1cc414dd408fbae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.4.0-cp311-cp311-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 247c54fa77ede3bc560960a5903a7db25622dfd56212f3332dee461ffea9a845
MD5 c507baebcb69b54c3f67b731babadb5f
BLAKE2b-256 0503cfa8899db84d415e5351e1d99b864abd41ffe463d08c2d07102bef6448f2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cornac-2.4.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 9.7 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.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6c9a2870ec98a01906c028304cb9adb3e449324a42058c84057734618c3253eb
MD5 d50e46445c05a8e9371f0a0f29e08497
BLAKE2b-256 703fd6a78ae277b3399dd3d0b16b7dc2f59c8dad709765cc01cd8675f8aeb766

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.4.0-cp310-cp310-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 1c314a93422acca6285f3a49988569576c4ba4e9afdb641377e98f4894bcdfdf
MD5 c663b94498b40a25f4118326dd43924a
BLAKE2b-256 7253406a34afa35eff0145eacf1249c26098d382f14856027b2e722159286788

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.4.0-cp310-cp310-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 682d4fedbd103530fd44f16f8a980a3278351ac29003d6a27152a0a3228b4f22
MD5 f93122b61e9db4d8791424526fe37103
BLAKE2b-256 3330e38836d276924caac6f542fa0657c83ccdbff74f52c201a9f386917266c7

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