Git Product home page Git Product logo

youtube-8m's Introduction

YouTube-8M Tensorflow Starter Code

This repo contains starter code for training and evaluating machine learning models over the YouTube-8M dataset. This is the starter code for our 3rd Youtube8M Video Understanding Challenge on Kaggle and part of the International Conference on Computer Vision (ICCV) 2019 selected workshop session. The code gives an end-to-end working example for reading the dataset, training a TensorFlow model, and evaluating the performance of the model.

Table of Contents

Running on Your Own Machine

Requirements

The starter code requires Tensorflow. If you haven't installed it yet, follow the instructions on tensorflow.org. This code has been tested with Tensorflow 1.14. Going forward, we will continue to target the latest released version of Tensorflow.

Please verify that you have Python 3.6+ and Tensorflow 1.14 or higher installed by running the following commands:

python --version
python -c 'import tensorflow as tf; print(tf.__version__)'

Download Dataset Locally

Please see our dataset website for up-to-date download instructions.

In this document, we assume you download all the frame-level feature dataset to ~/yt8m/2/frame and segment-level validation/test dataset to ~/yt8m/3/frame. So the structure should look like

~/yt8m/
 - ~/yt8m/2/frame/
   - ~/yt8m/2/frame/train
 - ~/yt8m/3/frame/
   - ~/yt8m/3/frame/test
   - ~/yt8m/3/frame/validate

Try the starter code

Clone this git repo: mkdir -p ~/yt8m/code cd ~/yt8m/code git clone https://github.com/google/youtube-8m.git

Train video-level model on frame-level features and inference at segment-level.

Train using train.py, selecting a frame-level model (e.g. FrameLevelLogisticModel), and instructing the trainer to use --frame_features. TLDR - frame-level features are compressed, and this flag uncompresses them.

python train.py --frame_features --model=FrameLevelLogisticModel \
--feature_names='rgb,audio' --feature_sizes='1024,128' \
--train_data_pattern=${HOME}/yt8m/2/frame/train/train*.tfrecord
--train_dir ~/yt8m/models/frame/sample_model --start_new_model

Evaluate the model by

python eval.py \
--eval_data_pattern=${HOME}/yt8m/3/frame/validate/validate*.tfrecord \
--train_dir ~/yt8m/models/frame/sample_model --segment_labels

This will provide some comprehensive metrics, e.g., gAP, mAP, etc., for your models.

Produce CSV (kaggle_solution.csv) by doing inference:

python \
inference.py --train_dir ~/yt8m/models/frame/sample_model \
--output_file=$HOME/tmp/kaggle_solution.csv \
--input_data_pattern=${HOME}/yt8m/3/frame/test/test*.tfrecord --segment_labels

(Optional) If you wish to see how the models are evaluated in Kaggle system, you can do so by

python inference.py --train_dir ~/yt8m/models/frame/sample_model \
--output_file=$HOME/tmp/kaggle_solution_validation.csv \
--input_data_pattern=${HOME}/yt8m/3/frame/validate/validate*.tfrecord \
--segment_labels
python segment_eval_inference.py \
--eval_data_pattern=${HOME}/yt8m/3/frame/validate/validate*.tfrecord \
--label_cache=$HOME/tmp/validate.label_cache \
--submission_file=$HOME/tmp/kaggle_solution_validation.csv --top_n=100000

NOTE: This script can be slow for the first time running. It will read TFRecord data and build label cache. Once label cache is built, the evaluation will be much faster later on.

Tensorboard

You can use Tensorboard to compare your frame-level or video-level models, like:

MODELS_DIR=~/yt8m/models
tensorboard --logdir frame:${MODELS_DIR}/frame

We find it useful to keep the tensorboard instance always running, as we train and evaluate different models.

Using GPUs

If your Tensorflow installation has GPU support, e.g., installed with pip install tensorflow-gpu, this code will make use of all of your compatible GPUs. You can verify your installation by running

python -c 'import tensorflow as tf; tf.Session()'

This will print out something like the following for each of your compatible GPUs.

I tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Found device 0 with properties:
name: Tesla M40
major: 5 minor: 2 memoryClockRate (GHz) 1.112
pciBusID 0000:04:00.0
Total memory: 11.25GiB
Free memory: 11.09GiB
...

If at least one GPU was found, the forward and backward passes will be computed with the GPUs, whereas the CPU will be used primarily for the input and output pipelines. If you have multiple GPUs, the current default behavior is to use only one of them.

Running on Google's Cloud Machine Learning Platform

Requirements

This option requires you to have an appropriately configured Google Cloud Platform account. To create and configure your account, please make sure you follow the instructions here.

Please also verify that you have Python 3.6+ and Tensorflow 1.14 or higher installed by running the following commands:

python --version
python -c 'import tensorflow as tf; print(tf.__version__)'

Accessing Files on Google Cloud

You can browse the storage buckets you created on Google Cloud, for example, to access the trained models, prediction CSV files, etc. by visiting the Google Cloud storage browser.

Alternatively, you can use the 'gsutil' command to download the files directly. For example, to download the output of the inference code from the previous section to your local machine, run:

gsutil cp $BUCKET_NAME/${JOB_TO_EVAL}/predictions.csv .

Testing Locally

All gcloud commands should be done from the directory immediately above the source code. You should be able to see the source code directory if you run 'ls'.

As you are developing your own models, you will want to test them quickly to flush out simple problems without having to submit them to the cloud.

Here is an example command line for frame-level training:

gcloud ai-platform local train \
--package-path=youtube-8m --module-name=youtube-8m.train -- \
--train_data_pattern='gs://youtube8m-ml/2/frame/train/train*.tfrecord' \
--train_dir=/tmp/yt8m_train --frame_features --model=FrameLevelLogisticModel \
--feature_names='rgb,audio' --feature_sizes='1024,128' --start_new_model

Training on the Cloud over Frame-Level Features

The following commands will train a model on Google Cloud over frame-level features.

BUCKET_NAME=gs://${USER}_yt8m_train_bucket
# (One Time) Create a storage bucket to store training logs and checkpoints.
gsutil mb -l us-east1 $BUCKET_NAME
# Submit the training job.
JOB_NAME=yt8m_train_$(date +%Y%m%d_%H%M%S); gcloud --verbosity=debug ai-platform jobs \
submit training $JOB_NAME \
--package-path=youtube-8m --module-name=youtube-8m.train \
--staging-bucket=$BUCKET_NAME --region=us-east1 \
--config=youtube-8m/cloudml-gpu.yaml \
-- --train_data_pattern='gs://youtube8m-ml/2/frame/train/train*.tfrecord' \
--frame_features --model=FrameLevelLogisticModel \
--feature_names='rgb,audio' --feature_sizes='1024,128' \
--train_dir=$BUCKET_NAME/yt8m_train_frame_level_logistic_model --start_new_model

In the 'gsutil' command above, the 'package-path' flag refers to the directory containing the 'train.py' script and more generally the python package which should be deployed to the cloud worker. The module-name refers to the specific python script which should be executed (in this case the train module).

It may take several minutes before the job starts running on Google Cloud. When it starts you will see outputs like the following:

training step 270| Hit@1: 0.68 PERR: 0.52 Loss: 638.453
training step 271| Hit@1: 0.66 PERR: 0.49 Loss: 635.537
training step 272| Hit@1: 0.70 PERR: 0.52 Loss: 637.564

At this point you can disconnect your console by pressing "ctrl-c". The model will continue to train indefinitely in the Cloud. Later, you can check on its progress or halt the job by visiting the Google Cloud ML Jobs console.

You can train many jobs at once and use tensorboard to compare their performance visually.

tensorboard --logdir=$BUCKET_NAME --port=8080

Once tensorboard is running, you can access it at the following url: http://localhost:8080. If you are using Google Cloud Shell, you can instead click the Web Preview button on the upper left corner of the Cloud Shell window and select "Preview on port 8080". This will bring up a new browser tab with the Tensorboard view.

Evaluation and Inference

Here's how to evaluate a model on the validation dataset:

JOB_TO_EVAL=yt8m_train_frame_level_logistic_model
JOB_NAME=yt8m_eval_$(date +%Y%m%d_%H%M%S); gcloud --verbosity=debug ai-platform jobs \
submit training $JOB_NAME \
--package-path=youtube-8m --module-name=youtube-8m.eval \
--staging-bucket=$BUCKET_NAME --region=us-east1 \
--config=youtube-8m/cloudml-gpu.yaml \
-- --eval_data_pattern='gs://youtube8m-ml/3/frame/validate/validate*.tfrecord' \
--frame_features --model=FrameLevelLogisticModel --feature_names='rgb,audio' \
--feature_sizes='1024,128' --train_dir=$BUCKET_NAME/${JOB_TO_EVAL} \
--segment_labels --run_once=True

And here's how to perform inference with a model on the test set:

JOB_TO_EVAL=yt8m_train_frame_level_logistic_model
JOB_NAME=yt8m_inference_$(date +%Y%m%d_%H%M%S); gcloud --verbosity=debug ai-platform jobs \
submit training $JOB_NAME \
--package-path=youtube-8m --module-name=youtube-8m.inference \
--staging-bucket=$BUCKET_NAME --region=us-east1 \
--config=youtube-8m/cloudml-gpu.yaml \
-- --input_data_pattern='gs://youtube8m-ml/3/frame/test/test*.tfrecord' \
--train_dir=$BUCKET_NAME/${JOB_TO_EVAL} --segment_labels \
--output_file=$BUCKET_NAME/${JOB_TO_EVAL}/predictions.csv

Note the confusing use of 'training' in the above gcloud commands. Despite the name, the 'training' argument really just offers a cloud hosted python/tensorflow service. From the point of view of the Cloud Platform, there is no distinction between our training and inference jobs. The Cloud ML platform also offers specialized functionality for prediction with Tensorflow models, but discussing that is beyond the scope of this readme.

Once these job starts executing you will see outputs similar to the following for the evaluation code:

examples_processed: 1024 | global_step 447044 | Batch Hit@1: 0.782 | Batch PERR: 0.637 | Batch Loss: 7.821 | Examples_per_sec: 834.658

and the following for the inference code:

num examples processed: 8192 elapsed seconds: 14.85

Export Your Model for MediaPipe Inference

To run inference with your model in MediaPipe inference demo, you need to export your checkpoint to a SavedModel.

Example command:

python export_model_mediapipe.py --checkpoint_file  ~/yt8m/models/frame/sample_model/inference_model/segment_inference_model --output_dir /tmp/mediapipe/saved_model/

Create Your Own Dataset Files

You can create your dataset files from your own videos. Our feature extractor code creates tfrecord files, identical to our dataset files. You can use our starter code to train on the tfrecord files output by the feature extractor. In addition, you can fine-tune your YouTube-8M models on your new dataset.

Training without this Starter Code

You are welcome to use our dataset without using our starter code. However, if you'd like to compete on Kaggle, then you must make sure that you are able to produce a prediction CSV file produced by our inference.py. In particular, the predictions CSV file must have two fields: Class Id,Segment Ids where Class Id must be class ids listed in segment_label_ids.csv and Segment Ids is a space-delimited list of <video ID>:<segment start time> sorted in a descending order of confidence score.

Examples:

3,6l0e:100 6l0e:115 5x0Q:120 6l0e:160 Au0e:185 ...
...
1831,mm0Z:15 pT0e:190 sO0k:145 WQ01:195 Qd0K:175 ...

More Documents

More documents can be found in docs folder.

About This Project

This project is meant help people quickly get started working with the YouTube-8M dataset. This is not an official Google product.

youtube-8m's People

Contributors

5volts avatar andreikop avatar cesposo avatar ducklingll avatar embiem avatar gadamc avatar gtoderici avatar iezepov avatar jingjinglong avatar joeyhng avatar keineahnung2345 avatar leegleechn avatar natsev avatar pomonam avatar priyadskml avatar raineydavid avatar rickymf4 avatar samihaija avatar sobinp avatar sohierdane avatar uniqueness avatar vicaire avatar voilin avatar wendykan avatar xericzephyr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

youtube-8m's Issues

ModuleNotFoundError: No module named 'eval_util'

From google cloud

"Traceback (most recent call last):
File "/usr/lib/python3.5/runpy.py", line 184, in _run_module_as_main
"main", mod_spec)
File "/usr/lib/python3.5/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/root/.local/lib/python3.5/site-packages/youtube-8m/train.py", line 20, in
import eval_util
ImportError: No module named 'eval_util'
"

Access to raw video

Hello, thank you for your work.

Is it possible to have access to the raw video?

Thank you in advance for your answer :)

ModuleNotFoundError: No module named 'eval_util'

Following the steps in README for running locally, I'm running into an error:

$ ls
youtube-8m
$ gcloud ai-platform local train \
> --package-path=youtube-8m --module-name=youtube-8m.train -- \
> --train_data_pattern='gs://youtube8m-ml/2/frame/train/train*.tfrecord' \
> --train_dir=/tmp/yt8m_train --frame_features --model=FrameLevelLogisticModel \
> --feature_names='rgb,audio' --feature_sizes='1024,128' --start_new_model
Traceback (most recent call last):
  File "/Users/gorkem/anaconda3/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/Users/gorkem/anaconda3/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/Users/gorkem/kaggle/yt8m/code/youtube-8m/train.py", line 20, in <module>
    import eval_util
ModuleNotFoundError: No module named 'eval_util'

Later, adding the directory youtube-8m to PYTHONPATH solves the problem for me, but that probably isn't the intended usage.

extract feature

Hello, frame-based features, are you tfrecord formed through MediaPipe or based on https://github.com/google/youtube-8m/blob/master/feature_extractor/README.md.
For example, if I train a classifier through the 1.53t frame feature, when I want to predict a new video tag, should I use mediapipe to get the corresponding tfrecord, or use the previous version to extract the corresponding feature? Or is it both possible and has no effect on the forecast result?

tensorflow.python.framework.errors_impl.InvalidArgumentError: Name: , Context feature 'id' is required but could not be found.

Hi,

I tried to train the model, but I met this problem.

I0527 10:22:54.050192 139639276939008 supervisor.py:1117] Saving checkpoint to path /home/yt8m/train_model/model.ckpt
INFO:tensorflow:Starting queue runners.
I0527 10:22:54.050733 139641303152448 supervisor.py:743] Starting queue runners.
INFO:tensorflow:/job:master/task:0: Entering training loop.
I0527 10:22:54.054144 139641303152448 train.py:467] /job:master/task:0: Entering training loop.
INFO:tensorflow:Error reported to Coordinator: <class 'tensorflow.python.framework.errors_impl.InvalidArgumentError'>, Name: , Context feature 'id' is required but could not be found.
[[{{node train_input/ParseSingleSequenceExample_1/ParseSingleSequenceExample}}]]
I0527 10:22:54.248131 139639000110848 coordinator.py:224] Error reported to Coordinator: <class 'tensorflow.python.framework.errors_impl.InvalidArgumentError'>, Name: , Context feature 'id' is required but could not be found.
[[{{node train_input/ParseSingleSequenceExample_1/ParseSingleSequenceExample}}]]
INFO:tensorflow:global_step/sec: 0
I0527 10:22:54.729485 139639285331712 supervisor.py:1099] global_step/sec: 0
INFO:tensorflow:/home/yt8m/train_model/model.ckpt-0 is not in all_model_checkpoint_paths. Manually adding it.
I0527 10:22:54.842687 139639276939008 checkpoint_management.py:95] /home/yt8m/train_model/model.ckpt-0 is not in all_model_checkpoint_paths. Manually adding it.
INFO:tensorflow:/job:master/task:0: Done training -- epoch limit reached.
I0527 10:22:54.967165 139641303152448 train.py:520] /job:master/task:0: Done training -- epoch limit reached.
Traceback (most recent call last):
File "train.py", line 716, in
app.run()
File "/usr/local/lib/python3.6/site-packages/tensorflow_core/python/platform/app.py", line 40, in run
_run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
File "/usr/local/lib/python3.6/site-packages/absl/app.py", line 299, in run
_run_main(main, args)
File "/usr/local/lib/python3.6/site-packages/absl/app.py", line 250, in _run_main
sys.exit(main(argv))
File "train.py", line 706, in main
FLAGS.export_model_steps).run(start_new_model=FLAGS.start_new_model)
File "train.py", line 520, in run
task_as_string(self.task))
File "/usr/local/lib/python3.6/contextlib.py", line 88, in exit
next(self.gen)
File "/usr/local/lib/python3.6/site-packages/tensorflow_core/python/training/supervisor.py", line 1014, in managed_session
self.stop(close_summary_writer=close_summary_writer)
File "/usr/local/lib/python3.6/site-packages/tensorflow_core/python/training/supervisor.py", line 839, in stop
ignore_live_threads=ignore_live_threads)
File "/usr/local/lib/python3.6/site-packages/tensorflow_core/python/training/coordinator.py", line 389, in join
six.reraise(*self._exc_info_to_raise)
File "/usr/local/lib/python3.6/site-packages/six.py", line 703, in reraise
raise value
File "/usr/local/lib/python3.6/site-packages/tensorflow_core/python/training/queue_runner_impl.py", line 257, in _run
enqueue_callable()
File "/usr/local/lib/python3.6/site-packages/tensorflow_core/python/client/session.py", line 1287, in _single_operation_run
self._call_tf_sessionrun(None, {}, [], target_list, None)
File "/usr/local/lib/python3.6/site-packages/tensorflow_core/python/client/session.py", line 1443, in _call_tf_sessionrun
run_metadata)
tensorflow.python.framework.errors_impl.InvalidArgumentError: Name: , Context feature 'id' is required but could not be found.
[[{{node train_input/ParseSingleSequenceExample_1/ParseSingleSequenceExample}}]]

I don't know how to solve it. I would appreciate if you could guide me in solving this problem. Thank you.

how big is the data?

for these two? The website doesn't mention it. On kaggle it says. 1TB+

If the below is beyond a 100GB. Is there anyway to use a subset?

curl data.yt8m.org/download.py | partition=3/frame/validate mirror=us python
curl data.yt8m.org/download.py | partition=3/frame/test mirror=us python

Empty label?

Hi, I am not familiar with tensorflow and I extract the video-level features from tfrecord and convert them to torch.Tensor.
However, I find a large proportion of videos (nearly 20% of them) have empty label.
I wonder if it's because I made some mistakes in extraction or youtube-8m just organized in this way.
Please correct me if I'm wrong! Here's a minimal script of extraction:

import tensorflow as tf
import numpy as np
from tqdm import tqdm
import os
import json
import torch
tf.compat.v1.enable_eager_execution()
split = ['train', 'validate', 'test']
video_files = []
root, store = './2/video/', './2/video_convert'
for d in os.listdir(root):
    video_files.append(os.path.join(root, d))

train_label, val_label, test_label = {}, {}, {}
nonzero, zero = 0, 0
total, video_cnt = 0, 0
for file in tqdm(video_files):
    try:
        for ss in split:
            if ss in file:
                _split = ss
        for example in tf.compat.v1.python_io.tf_record_iterator(file):
            tf_example = tf.train.Example.FromString(example)
            _id = tf_example.features.feature['id'].bytes_list.value[0].decode('utf-8')
            _label = list(tf_example.features.feature['labels'].int64_list.value)
            _rgb = tf_example.features.feature['mean_rgb'].float_list.value
            _audio = tf_example.features.feature['mean_audio'].float_list.value
            
            copy = _label[:]
            if _split == 'train':
                train_label[_id] = copy
            elif _split == 'validate':
                val_label[_id] = copy
            else:
                test_label[_id] = copy
            if len(copy) != 0:
                nonzero += 1
            else:
                zero += 1
            total += len(copy)
            video_cnt += 1
                
#             torch.save(torch.Tensor(_rgb), f'{store}/{_split}/{_id}_rgb.pt')
#             torch.save(torch.Tensor(_audio), f'{store}/{_split}/{_id}_audio.pt')
            
    except Exception as e:
        print('corrupt:', file, e)
print(nonzero, zero) # 5001275 1133323
print('average:', total/video_cnt) # average: 2.455081164242547

Where is the downloader script?

python3 train.py --frame_features --model=FrameLevelLogisticModel --feature_names='rgb,audio' --feature_sizes='1024,128' --train_data_pattern=${HOME}/yt8m/2/frame/train/train*.tfrecord --train_dir ~/yt8m/models/frame/sample_model --start_new_model

yields

tensorflow.python.framework.errors_impl.NotFoundError: /home/dario/yt8m/2/frame/train; No such file or directory

https://github.com/google/youtube-8m#download-dataset-locally says Please see our dataset website for up-to-date download instructions.

and https://research.google.com/youtube8m/download.html in turn says We offer the YouTube8M dataset for download as TensorFlow Record files. We provide downloader script

Where is the downloader script?

Could I get the test set label to host a Kaggle inclass competition?

I am a first-year graduate student at SJTU and I am also a teaching assistant. I want to host a kaggle inclass competition with video level feature youtube-8m data for students. But I found that I couldn't have access to the data whose labels students don't know.
Could I get some test set label of Youtube 8m dataset for evaluating the result? I mean there is no need for the labels of all test set, part of them (may be the label of 200MB Video features) is enough. Or if you have some other suggestions, I would also be very grateful!
Thanks in advance!

is it possible to do ASR by using this dataset?

How can we do Speech Recognition task using youtube-8m dataset?

is it possible to do ASR by using this dataset?

sir, please can you explain me about how to extract audio features with transcript and do ASR task.

Thank you sir.

mean average precision calculator bug

there is an example in mean_average_precision_calculator.py

import random
p = np.array([[random.random() for _ in xrange(50)] for _ in xrange(1000)])
a = np.array([[random.choice([0, 1]) for _ in xrange(50)]
     for _ in xrange(1000)])
# mean average precision for 50 classes.
calculator = mean_average_precision_calculator.MeanAveragePrecisionCalculator(
            num_class=50)
calculator.accumulate(p, a)
aps = calculator.peek_map_at_n()

where p and a are numpy array of size n*num_classes.
However, looking at the code, the correct mean average precision should be calculated by calculator.accumulate(p.transpose(), a.transpose()). am I correct?

feature_extractor_test

Hi,
When I try to run python feature_extractor_test.py I got the following error:

feature_extractor_test.py:44: ResourceWarning: unclosed file <_io.TextIOWrapper\
 name='testdata/sports1m_frame.pkl' mode='r' encoding='UTF-8'>
  sports_1m_test_data = cPickle.load(open(_FilePath('sports1m_frame.pkl')))
[  FAILED  ] FeatureExtractorTest.testPCAOnFeatureVector
======================================================================
ERROR: testPCAOnFeatureVector (__main__.FeatureExtractorTest)
testPCAOnFeatureVector (__main__.FeatureExtractorTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "feature_extractor_test.py", line 44, in testPCAOnFeatureVector
    sports_1m_test_data = cPickle.load(open(_FilePath('sports1m_frame.pkl')))
TypeError: a bytes-like object is required, not 'str'

----------------------------------------------------------------------
Ran 1 test in 0.854s

Please is somebody known what is going on?

Hyper-parameters of the baselines presented in the paper

Hi, I'm trying to reproduce the results of video-level-feature-based model (i.e., Logistic Regression, MoE), but cannot find specific hyper-parameter settings in the github repo. Do they share the same default settings (lr, epoch, optimizer, etc) defined in the dataset flags? Besides, I find no instructions on how we can train video-level-feature-based model (only FrameLevelLogisticModel is left as an example).
I will really appreciate it if the running scripts and the corresponding settings can be provided.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.