Visualizing Filters of a CNN using TensorFlow

Brought by: Coursera

Overview

In this short, 1 hour long guided project, we will use a Convolutional Neural Network - the popular VGG16 model, and we will visualize various filters from different layers of the CNN. We will do this by using gradient ascent to visualize images that maximally activate specific filters from different layers of the model.

We will be using TensorFlow as our machine learning framework. The project uses the Google Colab environment which is a fantastic tool for creating and running Jupyter Notebooks in the cloud, and Colab even provides free GPUs for your notebooks.

You will need prior programming experience in Python. This is a practical, hands on guided project for learners who already have theoretical understanding of Neural Networks, Convolutional Neural Networks, and optimization algorithms like gradient descent but want to understand how to use the TensorFlow to visualize various filters of a CNN.

Note: This course works best for learners who are based in the North America region. We’re currently working on providing the same experience in other regions.

Syllabus

  • Visualizing Filters of a CNN using TensorFlow
    • In this short, 1 hour long, guided project, we will use a Convolutional Neural Network - the popular VGG16 model, and we will visualize various filters from different layers of the CNN. We will do this by using gradient ascent to visualize images that maximally activate specific filters from different layers of the model.We will be using TensorFlow as our machine learning framework. The project uses the Google Colab environment which is a fantastic tool for creating and running Jupyter Notebooks in the cloud, and Colab even provides free GPUs for your notebooks.You will need prior programming experience in Python. This is a practical, hands on guided project for learners who already have theoretical understanding of Neural Networks, Convolutional Neural Networks, and optimization algorithms like gradient descent but want to understand how to use the TensorFlow to visualize various filters of a CNN.

Taught by

Amit Yadav

Visualizing Filters of a CNN using TensorFlow
Go to course

Visualizing Filters of a CNN using TensorFlow

Brought by: Coursera

  • Coursera
  • Paid
  • English
  • Certificate Available
  • Available at any time
  • intermediate
  • English
8.1.2PHP Version823msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (540ms)
    • Application (281ms)
    • 1 x Booting (65.62%)
      540.10ms
      1 x Application (34.14%)
      281.01ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed8.8ms
      • select * from `courses` where `slug_en` = 'visualizing-filters-of-a-cnn-using-tensorflow' limit 1
        7.15ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. visualizing-filters-of-a-cnn-using-tensorflow
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-07-04 16:07:30' where `id` = 1996
        460μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-07-04 16:07:30
        • 1. 1996
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (20)
        240μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        210μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (106) and `institutions`.`deleted_at` is null
        250μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        230μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 1987 limit 1
        260μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 1987
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        pQRnVe0wkfwpldIV9itNUrwjdwpLJZeM7iHtLbeU
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/visualizing-filters-of-a-cnn-using-tensor...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/visualizing-filters-of-a-cnn-using-tensorflow
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "216.73.216.191" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.191" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "959fe03aefab1b3c-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "216.73.216.191" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.191" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "959fe03aefab1b3c-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "39848" "REMOTE_ADDR" => "172.69.7.223" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/visualizing-filters-of-a-cnn-using-tensorflow" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1751645249.9935 "REQUEST_TIME" => 1751645249 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Fri, 04 Jul 2025 16:07:30 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IittVDgzWlBHbHI2SUk4VXFSZHYzYUE9PSIsInZhbHVlIjoiR3RQZ3h0SWlvNFJqUjRvbVlCaHBxWTkvUVdBMDQ4Y2Uwbmozdk1UQ0lCSStNdVd2bHhkZFlBSTE1bitoRlpBc3Z4cHRWbk9xOGt5VkpwejdDUElkejU5ZmNpZFgrN3JuQ1pxdEIrY3JUbThUOHJlNnNKTUZ0OTFBLzdLRXNic0giLCJtYWMiOiI3YTRlZTcyMGE4ZmE1ZmIyYjgwYjExYWNkOTI2MDJiZTJhZTcxZWUwZDM5ZWU5N2IwZGQwMTY1MDJhMWYyYTI1IiwidGFnIjoiIn0%3D; expires=Fri, 04 Jul 2025 18:07:30 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IittVDgzWlBHbHI2SUk4VXFSZHYzYUE9PSIsInZhbHVlIjoiR3RQZ3h0SWlvNFJqUjRvbVlCaHBxWTkvUVdBMDQ4Y2Uwbmozdk1UQ0lCSStNdVd2bHhkZFlBSTE1bitoRlpBc3Z4cHRWb" 1 => "laravel_session=eyJpdiI6IjR1d2pZcE40cWYrWVcrbDU1L216Q1E9PSIsInZhbHVlIjoiTEVRYzkyUUFIRkp6cWhyY1JGdFlhQ0p4TGdHbktFUCtWaDBEdklzOWxiWCs2cldLbkRHZ1RlUFdON09IQmk3NGkyR20zNkVmL3ZaUHFIWkdlVEZoWThqTXFCWnhrU0RUSkFhL1JxZDBoWGRtSEZBZlBaQnJIME95WmNyeEN3L1QiLCJtYWMiOiI0M2M2NmJiNzk3MjQ5NTE1YzQyODRjYjNhOTVlNzYxNmI4OGU3OTUyNGM5OGViMmYzNDliY2ZhYmQ4ZTViOTU5IiwidGFnIjoiIn0%3D; expires=Fri, 04 Jul 2025 18:07:30 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IjR1d2pZcE40cWYrWVcrbDU1L216Q1E9PSIsInZhbHVlIjoiTEVRYzkyUUFIRkp6cWhyY1JGdFlhQ0p4TGdHbktFUCtWaDBEdklzOWxiWCs2cldLbkRHZ1RlUFdON09IQmk3NGky" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IittVDgzWlBHbHI2SUk4VXFSZHYzYUE9PSIsInZhbHVlIjoiR3RQZ3h0SWlvNFJqUjRvbVlCaHBxWTkvUVdBMDQ4Y2Uwbmozdk1UQ0lCSStNdVd2bHhkZFlBSTE1bitoRlpBc3Z4cHRWbk9xOGt5VkpwejdDUElkejU5ZmNpZFgrN3JuQ1pxdEIrY3JUbThUOHJlNnNKTUZ0OTFBLzdLRXNic0giLCJtYWMiOiI3YTRlZTcyMGE4ZmE1ZmIyYjgwYjExYWNkOTI2MDJiZTJhZTcxZWUwZDM5ZWU5N2IwZGQwMTY1MDJhMWYyYTI1IiwidGFnIjoiIn0%3D; expires=Fri, 04-Jul-2025 18:07:30 GMT; path=/XSRF-TOKEN=eyJpdiI6IittVDgzWlBHbHI2SUk4VXFSZHYzYUE9PSIsInZhbHVlIjoiR3RQZ3h0SWlvNFJqUjRvbVlCaHBxWTkvUVdBMDQ4Y2Uwbmozdk1UQ0lCSStNdVd2bHhkZFlBSTE1bitoRlpBc3Z4cHRWb" 1 => "laravel_session=eyJpdiI6IjR1d2pZcE40cWYrWVcrbDU1L216Q1E9PSIsInZhbHVlIjoiTEVRYzkyUUFIRkp6cWhyY1JGdFlhQ0p4TGdHbktFUCtWaDBEdklzOWxiWCs2cldLbkRHZ1RlUFdON09IQmk3NGkyR20zNkVmL3ZaUHFIWkdlVEZoWThqTXFCWnhrU0RUSkFhL1JxZDBoWGRtSEZBZlBaQnJIME95WmNyeEN3L1QiLCJtYWMiOiI0M2M2NmJiNzk3MjQ5NTE1YzQyODRjYjNhOTVlNzYxNmI4OGU3OTUyNGM5OGViMmYzNDliY2ZhYmQ4ZTViOTU5IiwidGFnIjoiIn0%3D; expires=Fri, 04-Jul-2025 18:07:30 GMT; path=/; httponlylaravel_session=eyJpdiI6IjR1d2pZcE40cWYrWVcrbDU1L216Q1E9PSIsInZhbHVlIjoiTEVRYzkyUUFIRkp6cWhyY1JGdFlhQ0p4TGdHbktFUCtWaDBEdklzOWxiWCs2cldLbkRHZ1RlUFdON09IQmk3NGky" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "pQRnVe0wkfwpldIV9itNUrwjdwpLJZeM7iHtLbeU" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/visualizing-filters-of-a-cnn-using-tensorflow" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]