gnuplot | ||
images | ||
src | ||
.gitignore | ||
Film Poster Genres - Slides.odp | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
README.md |
film-poster-genres
Predicting film genres from their posters with Tensorflow.js
Dataset
The dataset used with this demo can be found here:
https://nextcloud.starbeamrainbowlabs.com/index.php/s/wmCdL4tX3HHGAFD
The format is as follows:
+ dataset_dir/
+ train/
+ 1234,Comedy,Fantasy.jpg
+ 4321,Western,Short,Drama.jpg
+ .....
+ validate/
+ 6789,Drama,Mystery,Thriller.jpg
+ 9876,History,Documentary,Animation.jpg
+ .....
The filenames of the images take the following format: ID,GENRE_1,GENRE_2,GENRE_N.jpg
.
System / User Requirements
- Node.js
- NPM (installed by default with Node.js)
- A relatively decent CPU
- Basic knowledge of the command-line / terminal
Installation
First, clone this git repo:
git clone https://git.starbeamrainbowlabs.com/Demos/film-poster-genres.git
cd film-poster-genres
Then, install the dependencies:
npm install
Usage
Training
To train a new model:
node src/index.mjs train --input path/to/dataset_dir --output path/to/output_dir
The output directory will look like this:
+ output_dir/
+ metrics.stream.json
+ checkpoints/
+ 0/
+ 1/
+ 2/
+ 3/
Predicting
To make a prediction using an existing model:
node src/index.mjs predict --input path/to/image.jpg --ai-model path/to/checkpoint_dir/
The result will be written to the standard output. Extra debugging data is written to the standard error, but this can be ignored.
Contributing
Contributions are very welcome! Git patches are preferred - I can move this repo to GitHub if that makes it easier. Please mention in your contribution that you release your work under the MPL-2.0 (see below).
Licence
This code is released under the Mozilla Public License 2.0. The full license text is included in the LICENSE
file in this repository. Tldr legal have a great summary of the license if you're interested.