Intellipaat Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Machine Learning by (19k points)

I am following this tutorial for learning TensorFlow Slim but upon running the following code for Inception:

import numpy as np

import os

import tensorflow as tf

import urllib2

from datasets import imagenet

from nets import inception

from preprocessing import inception_preprocessing

slim = tf.contrib.slim

batch_size = 3

image_size = inception.inception_v1.default_image_size

checkpoints_dir = '/tmp/checkpoints/'

with tf.Graph().as_default():

    url = 'Your Image Url'

    image_string = urllib2.urlopen(url).read()

    image = tf.image.decode_jpeg(image_string, channels=3)

    processed_image = inception_preprocessing.preprocess_image(image, image_size, image_size, is_training=False)

    processed_images  = tf.expand_dims(processed_image, 0)

    # Create the model, use the default arg scope to configure the batch norm parameters.

    with slim.arg_scope(inception.inception_v1_arg_scope()):

        logits, _ = inception.inception_v1(processed_images, num_classes=1001, is_training=False)

    probabilities = tf.nn.softmax(logits)

    init_fn = slim.assign_from_checkpoint_fn(

        os.path.join(checkpoints_dir, 'inception_v1.ckpt'),

        slim.get_model_variables('InceptionV1'))

    with tf.Session() as sess:

        init_fn(sess)

        np_image, probabilities = sess.run([image, probabilities])

        probabilities = probabilities[0, 0:]

        sorted_inds = [i[0] for i in sorted(enumerate(-probabilities), key=lambda x:x[1])]

    plt.figure()

    plt.imshow(np_image.astype(np.uint8))

    plt.axis('off')

    plt.show()

    names = imagenet.create_readable_names_for_imagenet_labels()

    for i in range(5):

        index = sorted_inds[i]

        print('Probability %0.2f%% => [%s]' % (probabilities[index], names[index]))

I seem to be getting this set of errors:

Traceback (most recent call last):

  File "DA_test_pred.py", line 24, in <module>

    logits, _ = inception.inception_v1(processed_images, num_classes=1001, is_training=False)

This is strange because all of this code is from their official guide. I am new to TF and any help would be appreciated.

1 Answer

0 votes
by (33.1k points)

I think the problem is caused by a change in the API. 

You should update all the line with tf.concat

For example

net = tf.concat(3, [branch_0, branch_1, branch_2, branch_3])

should be replaced with

net = tf.concat([branch_0, branch_1, branch_2, branch_3], 3)

Hope this answer helps.

31k questions

32.8k answers

501 comments

693 users

Browse Categories

...