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
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.3.5.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.3.5-cp313-cp313-win_amd64.whl (9.6 MB view details)

Uploaded CPython 3.13Windows x86-64

cornac-2.3.5-cp313-cp313-manylinux1_x86_64.whl (29.6 MB view details)

Uploaded CPython 3.13

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

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

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

Uploaded CPython 3.12Windows x86-64

cornac-2.3.5-cp312-cp312-manylinux1_x86_64.whl (29.6 MB view details)

Uploaded CPython 3.12

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

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

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

Uploaded CPython 3.11Windows x86-64

cornac-2.3.5-cp311-cp311-manylinux1_x86_64.whl (30.1 MB view details)

Uploaded CPython 3.11

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

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

cornac-2.3.5-cp310-cp310-win_amd64.whl (9.6 MB view details)

Uploaded CPython 3.10Windows x86-64

cornac-2.3.5-cp310-cp310-manylinux1_x86_64.whl (29.1 MB view details)

Uploaded CPython 3.10

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

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

cornac-2.3.5-cp39-cp39-win_amd64.whl (9.7 MB view details)

Uploaded CPython 3.9Windows x86-64

cornac-2.3.5-cp39-cp39-manylinux1_x86_64.whl (28.9 MB view details)

Uploaded CPython 3.9

cornac-2.3.5-cp39-cp39-macosx_15_0_arm64.whl (10.0 MB view details)

Uploaded CPython 3.9macOS 15.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for cornac-2.3.5.tar.gz
Algorithm Hash digest
SHA256 9257380060b24a0320815c706d257a27461ac80619368707155b9a0994ed9bba
MD5 6e26872e38642efdbc556443e78a62e5
BLAKE2b-256 16689bcc1a3061f38244ff1810aa9a6c70afd688f901517bd006c6ddeb4198bd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cornac-2.3.5-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.7

File hashes

Hashes for cornac-2.3.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d8e46340d7e12711b089e9f68f7d08fa708bfe903b66a3ae16bc087511781ccc
MD5 79ba31ff9907dc87f661ebd1a18b65bb
BLAKE2b-256 d6b4822e3aa76af6408f579b97e4de315435904187125c4c18cb2e882216a3b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.3.5-cp313-cp313-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 6a591e28456a8b004f5602a6e0ae2b5fc3947e471c66b0b6d3bc867131615f43
MD5 8ed0f523d6f3326e02b8212c80bae9be
BLAKE2b-256 645a0e30079278d8cc7ef9c32b67e1f71655bbbbf4f2d40013e00006eedf5a12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.3.5-cp313-cp313-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 703e85a808b80e165c95da627b4509c669dabbc56087513496c9ba03935e525b
MD5 e4d1a748744904ae760a0cbc59bef16b
BLAKE2b-256 bcf922f5b70eb7cbbacfc7c8dcd82111d472e3413038b22a0544b7dff1e660f0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cornac-2.3.5-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.7

File hashes

Hashes for cornac-2.3.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f1dac67381e1cf3d1c6f636bb2a87d715d022651083266385e24319fd9d8b283
MD5 34055b868483b2c6dc51cb755587f611
BLAKE2b-256 78a3d2833848795c5f6f7b6d76054e3e07fb24238c2ba648a0825bcb8d5700b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.3.5-cp312-cp312-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 234a986014d4c1197e88a88771f3296ceb60f944d08175ed61d2be33d4aa77d5
MD5 d23dc2ddb63a550bf78c4914a87bce0b
BLAKE2b-256 0a485279e7edbfeb2947e7dfa8d5c08238504d7204e45ebd92a081a076eb5fd7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.3.5-cp312-cp312-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 37abe1374617af877e9d7c31d271156f089307be422bcea99579afec70ec41c4
MD5 168724cc27d8f9c36245a0414ebda5f2
BLAKE2b-256 5974627a6443e0b8801e73597d3635839f3f38dc23370e8bbf34fc086a7253d1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cornac-2.3.5-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.7

File hashes

Hashes for cornac-2.3.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5c913ddcfd9c22dffef431391357c3673f1882e80de8d58c798664543f6e78ea
MD5 dc0f967b2a4276f670a83fcf838d1de2
BLAKE2b-256 7c9fb7c6f6c6be173d2e0516c96e2c7bf75a516d69cbe63550d1bec5796f6545

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.3.5-cp311-cp311-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 3fd42e754a3a3adc6b129483123743a5dd524d0b398a74ac7c421028cd2d29e1
MD5 45cf6004eb5625a66a332a26bf669f59
BLAKE2b-256 5095c6110bb5345209e9b85cf33513e8300b3150c8d987a6ec6eb54835e28421

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.3.5-cp311-cp311-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 b6467f8be8a8b739511f4f314afdbad52922ef9d50a7d6d575e8ce09054f8cfa
MD5 35a400707ec4a234c95c5d8b1696cba1
BLAKE2b-256 1ff3f1bd8597e4879497d215ff5a8537e8569374e34d1714f3792aab7c35a698

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for cornac-2.3.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fc9e9adfa3cccdd83a3e78b2fcc3caa4b803c0373aa73848a763989f6ecdade3
MD5 a1d262eeb3492bf3558da358b1d7f03e
BLAKE2b-256 59c7bd98c55b4e37fa252be7634b9fbb1188b56d7a1724738ba6b53a50f7c314

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.3.5-cp310-cp310-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 d0137ff98d32c9781f37668a34e6d02cad989580d186c6e51cf89f5802cdb4e7
MD5 d2defee25aed10a851a7f6b039fdba3b
BLAKE2b-256 d596c2d85d9a88579cfc23198ff3b5d58a77e003435d02bcb2514867f81ac1e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cornac-2.3.5-cp310-cp310-macosx_12_0_universal2.whl
Algorithm Hash digest
SHA256 e1ad4401857433e96a17c969f3fe0d9f78c8bbef6ee2b4c77f5d804dfc69c332
MD5 0dd2f1ed74ed63b3dbf2934c939e8060
BLAKE2b-256 416abe9abe2d9bbe5b36663f116fe332235e00826be5ebea7db493987bbfd5b4

See more details on using hashes here.

File details

Details for the file cornac-2.3.5-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: cornac-2.3.5-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 9.7 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cornac-2.3.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 20fb331ec37e9560a0b2e9c91d0fe9db8348bcc0dcec4700505671428be297db
MD5 c2c4c5b58f25c55f83800e916cd89ddd
BLAKE2b-256 acbb8aece842fa3403a3aef901885339922d10d29d55cfb6c7f0f1eb7fb69520

See more details on using hashes here.

File details

Details for the file cornac-2.3.5-cp39-cp39-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for cornac-2.3.5-cp39-cp39-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 fbb0b07866a69379ee0a58f18d498d7597822faa76bf7bb558db067fb6c4b364
MD5 7212c1ad90afb1f8df35a096599c6f61
BLAKE2b-256 29b07bfd58c8b5bffd2e2eb9ea7c70e8fd27c407144a7ffcc98756ed830ce341

See more details on using hashes here.

File details

Details for the file cornac-2.3.5-cp39-cp39-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for cornac-2.3.5-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 de932e538affcc4fdbd41d7ad7453286ac8d847c481f8d411268ff61db86f449
MD5 59a19729396175e95d6c215fc3370b07
BLAKE2b-256 438c287ed2032de76bc696da40cff4e3ea0f955c1ec6d584d7f26718350de8e1

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