22

In the paper Batch Normalization,Sergey et al,2015. proposed Inception-v1 architecture which is a variant of the GoogleNet in the paper Going deeper with convolutions, and in the meanwhile they introduced Batch Normalization to Inception(BN-Inception). The main difference to the network described in (Szegedy et al.,2014) is that the 5x5 convolutional ...


7

The paper cited in the question "FaceNet: A Unified Embedding for Face Recognition and Clustering" is available at https://arxiv.org/pdf/1503.03832.pdf . Page no 5 of this paper lists the reference [16] for the Inception module architecture. The original paper introducing and describing this Inception architecture is - "Going Deeper With Convolutions", it ...


4

The answer will depend on some things such as your hardware and the image you process. Additional, we should distinguish if you are talking about a single run through the network in training mode or in inference mode. In the former, additional parameters are pre-computed and cached as well as several layers, such as dropout, being used, which are simply left ...


3

Keras supports lazy execution. The create_model and model.compile code are not executed until it is absolutely required which is right before the first training epoch. That increased time for the first epoch includes building the TensorFlow computational graph based on the plan in your create_model function. All remaining epochs re-use the same computational ...


3

The Inception models are types on Convolutional Neural Networks designed by google mainly for image classification. Each new version (v1, v2, v3, etc.) marks improvements they make upon the previous architecture. The main difference between the Inception models and regular CNNs are the inception blocks. These involve convolving the same input tensor with ...


3

After examining the dataset, we found that the problem was in NUSWIDE dataset itself. Almost half of the dataset didn't have supervised labels (81 labels entered by humans). Also we weren't training on the whole dataset, rather, we were taking random samples because some methods required that the whole dataset was loaded in memory which wasn't feasible. ...


3

beside what was mentioned by daoliker inception v2 utilized separable convolution as first layer of depth 64 function usage function definition paper quote from paper Our model employed separable convolution with depth multiplier 8 on the first convolutional layer. This reduces the computational cost while increasing the memory consumption at ...


2

The problem with 1000 classes is the ILSVRC2012 challenge which is using a subset of the full imagenet with "only" 1000 classes. The advantage of that is that it is fixed while imagenet itself is always expanding and new classes and examples may be added. Training on the full ImageNet set is a very long task and will require either a very long time or a ...


2

You can get all information you need from the source code. train_dir: Directory where checkpoints and event logs are written to. (default: /tmp/tfmodel/) dataset_dir: The directory where the dataset files are stored. dataset_name: The name of the dataset to load. (default: imagenet) dataset_split_name: The name of the train/test split. (default: train) ...


2

I have my own project that works similarly (but much simpler model), and it takes me about 0.1s to run my predictions in real time. You did the right thing by re-using the session -- that's what I did too. My guess is that your bottleneck is the size of the model. As far as I'm aware, the Inception model is huge. There will always be a tradeoff between model ...


2

In my experience, the example code for a low number of classes (<200) works well. When moving to more classes the imbalance data makes the network converge to the same numbers. You have imbalance data because now each output is a binary classifier by its own, this doesn't happen with softmax. The way to mitigate the problem is to use ...


2

"Higher dimensional representation" refers to having more feature maps like you suggested (check the inception module proposed in figure 7). As to what disentangled features mean, I believe they mean decorrelated: the more features (with different filters) the inception module extracts, the more and the faster the network learns. Because the network will ...


2

To freeze the lower layers during training, the simplest solution is to give the optimizer the list of variables to train, excluding the variables from the lower layers: train_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, scope="hidden[34]|outputs") training_op = optimizer.minimize(loss, var_list=train_vars) The ...


2

This page on github is my "go to" page to find the pretrained models that I think you are looking for including .pb files:


1

Although there are valid points in the accepted answer, I believe it is incorrect in this case. The timing differences mentioned were between the first epoch of training and the remaining epochs. The model and so the computational graph is compiled only once, when you call model.compile(), which is not part of the training itself. The difference in timings ...


1

I do not see any overfitting there. Overfitting is when your validation loss becomes worse with time, while training loss improves. Just because your training error is less than the validation (which is expected) does not mean it overfits. But you can try to freeze the first layers (up to the fully connected one) to ensure the network does not lose ...


1

Examples Here are two adapted functions from the first of the links below that should get some weights out for a given input sample for you and plot the activations for some filters of that layer: def getActivations(layer,sample): units = sess.run(layer,feed_dict={x:np.reshape(sample, [1,784], order='F'), keep_prob:1.0}) plotNNFilter(units) def ...


1

It seems the models hosted on https://storage.googleapis.com/download.tensorflow.org/models are not listed anywhere publically (or t least my research failed!). However, there are official and several nonofficial GitHub repositories with high-level TensorFlow model definitions and pretrained weights. For example: Nonofficial: https://github.com/Cadene/...


1

However, in the overall scheme, sliding this network can be represented by two 3 x 3 convolutional layers which reuses the activation between adjacent tiles. Since the replacement (two 3x3 instead of one 5x5) share weights, we don't have to calculate them twice. That is where the gain comes from. Edit: The gain comes from the sliding: using the ...


1

I'm running the script now. It's just creating bottleneck files for the flowers images, i.e. the old bottleneck files are not present. You can see that the bottleneck files are all created in the /tmp directory. This makes sense as the point of the script is only to retrain the final layer of the network. The idea is that the previously trained layers ...


1

When you extract the features, I'm assuming the features are stored somewhere. This means only the computation for each image is done only once. When you stack layers on top of the inception model, even if the inception weights are frozen, the forward pass for the activations or features still need to be computed. This is extra computation time, since the ...


1

Yes, but the labels are limited to the ones from ImageNet.


1

Actually, the answers above seem to be wrong. Indeed, it was a big mess with the naming. However, it seems that it was fixed in the paper that introduces Inception-v4 (see: "Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning"): The Inception deep convolutional architecture was introduced as GoogLeNet in (Szegedy et al. 2015a)...


1

The answer can be found in the Going deeper with convolutions paper: https://arxiv.org/pdf/1512.00567v3.pdf Check Table 3. Inception v2 is the architecture described in the Going deeper with convolutions paper. Inception v3 is the same architecture (minor changes) with different training algorithm (RMSprop, label smoothing regularizer, adding an auxiliary ...


Only top voted, non community-wiki answers of a minimum length are eligible