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
GPT-2 for Sequential Recommendation (GPT2Rec), 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.5.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.5.0-cp314-cp314-win_amd64.whl (9.8 MB view details)

Uploaded CPython 3.14Windows x86-64

cornac-2.5.0-cp314-cp314-manylinux1_x86_64.whl (29.7 MB view details)

Uploaded CPython 3.14

cornac-2.5.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.5.0-cp313-cp313-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13

cornac-2.5.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.5.0-cp312-cp312-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.12Windows x86-64

cornac-2.5.0-cp312-cp312-manylinux1_x86_64.whl (29.9 MB view details)

Uploaded CPython 3.12

cornac-2.5.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.5.0-cp311-cp311-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11

cornac-2.5.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.5.0-cp310-cp310-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10

cornac-2.5.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.5.0.tar.gz.

File metadata

  • Download URL: cornac-2.5.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.5.0.tar.gz
Algorithm Hash digest
SHA256 c2a72f3f4c6a90ec7602499f396e35c3549f700e44a22fafafbafa4125dd94f4
MD5 e7c578b37b46833f605fc04c4706ec76
BLAKE2b-256 7ba8cbbdda9b26f77b992d748099b8a948415380d759667d57247b07d313b11d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cornac-2.5.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 9.8 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.5.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 d9ae6f93d44a0d4cc9c1b9b7a2b72a2bb5d3dfe4b13c0e9e308fd557732ed079
MD5 b71f2eea98d2afadb48da485f58d8c42
BLAKE2b-256 471c683187ff653147f6f63769bd332855c05ab4f237f665c6589e316fe38e26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.5.0-cp314-cp314-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 08ce176a185dc5f3f385e7d8742731fb788a415703e58d3de3c11c512609cb16
MD5 1d69b919cae6bab8c0ca9119909db07e
BLAKE2b-256 02ed6f45400459cdf12e214e6902b7c27b7260c9adf0078123d427f69fb9cb74

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.5.0-cp314-cp314-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 d1c8e759a38f3db51e138493101387fc1ef125cfc16a031af67d9bead126bf9e
MD5 5cf136c4c61f081e4a2349ea9104a04c
BLAKE2b-256 3e8b4232f2f17b67ab4821cb854010d66bc389f83fd90f9a21c062045277213b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cornac-2.5.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 9.7 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.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a7b5f4618b59121d4b2d7354f1784770b29ef08a4509486b5b1e79a0dffe9b66
MD5 e2b905bead58b29e0064de4843c77b53
BLAKE2b-256 5e7cb537b71315e39161721a377977b7e495934b148e4b23bc500f4c691bcec6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.5.0-cp313-cp313-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 3886c51baf0467fa581a5c3fb2305c5eac92ea6c95237890fb31fd25c7fd9a56
MD5 9004f2972efcde047883196aee7d084d
BLAKE2b-256 23bdc37d117dc7621a98088f5af658838f22e19dde487a6427bb729a3aebbb49

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.5.0-cp313-cp313-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 02655068c0f3b0a10bb991b5f739fa699c36d3a9a8f8e20b56775408c85ba995
MD5 ee14bf481df674644a57750f4530d576
BLAKE2b-256 cfdd5561c1b9b61ac1e00d479e9c5f7922d760a425f0f012941c36ebb02c05f0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cornac-2.5.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 9.7 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.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 62a30c391be8fcf3f1e60d7f0ec06470ec9cc92ec25815303ef59dba1bea3f28
MD5 1d372cab6778af6a4629aa786517cda1
BLAKE2b-256 d0ed90f59a8780f50e03bd58b48287ff666083216e07d285d94cb407a7daba0e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.5.0-cp312-cp312-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 22461f6b6b60a29c790a3c6ed308f7a25abc95b576906b14da2ef3aae9ec1218
MD5 1fd65edf69eaf43cd2d956563b4213e9
BLAKE2b-256 5aa51cd5f64217d0e3ebb6acf1edb3cbf5f3f7cacb9d2d2a81680daa2b4e580e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.5.0-cp312-cp312-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 72602623e2ba67a989ee1385f291c1d41ff4e3d9711437712903b1c81eb98e1a
MD5 62d246cd3370c1b4fc0b324b3b2d4a19
BLAKE2b-256 0c614f32e9868aff217dfe7191e5ffd51e15c9b98c15fe1f8f8f396978c02f7e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cornac-2.5.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.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b553e5cad14c41ae6c8d76b62a0a7700a376ccd19995c14b24d599ea783bac6c
MD5 c6523deaca22001415de61488faf28e1
BLAKE2b-256 73a3c4625a4457d86b25b6080c84dd1a3b4d40bf9e7c982e49f12b9c79e3043d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.5.0-cp311-cp311-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 1a262fbbfd80465eccd37a324c0c996603e639067d27909f9d29a0d6893d47a4
MD5 db482e4001fac17f87511f0da10f7f10
BLAKE2b-256 6144d555ffa4885093135b6cf651b651a6f4cfcd1cfcac8f151aa03b1172cbd5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.5.0-cp311-cp311-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 07a454ba89f10c20f11ce5c55b2326c65d9a726575988a5753309eb752c69c93
MD5 908c80f831a9f26fd6e708599afc2d10
BLAKE2b-256 b88b73e6ca138a12dd09264a74624f3a8658e5ea9b75ebe7f637dbeb3d6f0f5e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cornac-2.5.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.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c6215968fe1bb8f412dba4383a7df2a35ecb127787d92a0d9b63cf5ef1d4618c
MD5 ba779d4aeb5bbf6f01d5bf71bff3c1b9
BLAKE2b-256 fb751f676b0cc312ab9349b5801803baf69c2f20c559e52f80b78f2db3648f6b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.5.0-cp310-cp310-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 212eb3b1687a8f86c5dcc411ce42a95a83a5af7f9894481d7b51842ec9dc2c08
MD5 6eb5483cc49c6f610ef68a42791417a2
BLAKE2b-256 f30403e20a6e3607bd0b7edde78e606a9eca0fee27ad71987e1d2fba936bc559

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.5.0-cp310-cp310-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 6451248eb51a97bd87f38bf673e2dbe3bc7b5d62bb479376fb6fa53e8a6e1bb8
MD5 8251809650c18c64835ae2becdb2025a
BLAKE2b-256 c4027b197f1a3af092f1edc1bf11a2e2ba3066fd025c121cb819ed7a69950975

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