Skip to content

Instantly share code, notes, and snippets.

@mihkell
Last active March 17, 2017 16:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mihkell/1db993e47017fb40e752402ced175a40 to your computer and use it in GitHub Desktop.
Save mihkell/1db993e47017fb40e752402ced175a40 to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html>
<head><meta charset="utf-8" />
<title>dlnd_image_classification</title><script src="https://unpkg.com/jupyter-js-widgets@2.0.*/dist/embed.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<style type="text/css">
/*!
*
* Twitter Bootstrap
*
*/
/*!
* Bootstrap v3.3.7 (http://getbootstrap.com)
* Copyright 2011-2016 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html {
font-family: sans-serif;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
display: block;
}
audio,
canvas,
progress,
video {
display: inline-block;
vertical-align: baseline;
}
audio:not([controls]) {
display: none;
height: 0;
}
[hidden],
template {
display: none;
}
a {
background-color: transparent;
}
a:active,
a:hover {
outline: 0;
}
abbr[title] {
border-bottom: 1px dotted;
}
b,
strong {
font-weight: bold;
}
dfn {
font-style: italic;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
}
mark {
background: #ff0;
color: #000;
}
small {
font-size: 80%;
}
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
img {
border: 0;
}
svg:not(:root) {
overflow: hidden;
}
figure {
margin: 1em 40px;
}
hr {
box-sizing: content-box;
height: 0;
}
pre {
overflow: auto;
}
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
color: inherit;
font: inherit;
margin: 0;
}
button {
overflow: visible;
}
button,
select {
text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button;
cursor: pointer;
}
button[disabled],
html input[disabled] {
cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
input {
line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box;
padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
input[type="search"] {
-webkit-appearance: textfield;
box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
legend {
border: 0;
padding: 0;
}
textarea {
overflow: auto;
}
optgroup {
font-weight: bold;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
}
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
@media print {
*,
*:before,
*:after {
background: transparent !important;
color: #000 !important;
box-shadow: none !important;
text-shadow: none !important;
}
a,
a:visited {
text-decoration: underline;
}
a[href]:after {
content: " (" attr(href) ")";
}
abbr[title]:after {
content: " (" attr(title) ")";
}
a[href^="#"]:after,
a[href^="javascript:"]:after {
content: "";
}
pre,
blockquote {
border: 1px solid #999;
page-break-inside: avoid;
}
thead {
display: table-header-group;
}
tr,
img {
page-break-inside: avoid;
}
img {
max-width: 100% !important;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
h2,
h3 {
page-break-after: avoid;
}
.navbar {
display: none;
}
.btn > .caret,
.dropup > .btn > .caret {
border-top-color: #000 !important;
}
.label {
border: 1px solid #000;
}
.table {
border-collapse: collapse !important;
}
.table td,
.table th {
background-color: #fff !important;
}
.table-bordered th,
.table-bordered td {
border: 1px solid #ddd !important;
}
}
@font-face {
font-family: 'Glyphicons Halflings';
src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot');
src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
.glyphicon {
position: relative;
top: 1px;
display: inline-block;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.glyphicon-asterisk:before {
content: "\002a";
}
.glyphicon-plus:before {
content: "\002b";
}
.glyphicon-euro:before,
.glyphicon-eur:before {
content: "\20ac";
}
.glyphicon-minus:before {
content: "\2212";
}
.glyphicon-cloud:before {
content: "\2601";
}
.glyphicon-envelope:before {
content: "\2709";
}
.glyphicon-pencil:before {
content: "\270f";
}
.glyphicon-glass:before {
content: "\e001";
}
.glyphicon-music:before {
content: "\e002";
}
.glyphicon-search:before {
content: "\e003";
}
.glyphicon-heart:before {
content: "\e005";
}
.glyphicon-star:before {
content: "\e006";
}
.glyphicon-star-empty:before {
content: "\e007";
}
.glyphicon-user:before {
content: "\e008";
}
.glyphicon-film:before {
content: "\e009";
}
.glyphicon-th-large:before {
content: "\e010";
}
.glyphicon-th:before {
content: "\e011";
}
.glyphicon-th-list:before {
content: "\e012";
}
.glyphicon-ok:before {
content: "\e013";
}
.glyphicon-remove:before {
content: "\e014";
}
.glyphicon-zoom-in:before {
content: "\e015";
}
.glyphicon-zoom-out:before {
content: "\e016";
}
.glyphicon-off:before {
content: "\e017";
}
.glyphicon-signal:before {
content: "\e018";
}
.glyphicon-cog:before {
content: "\e019";
}
.glyphicon-trash:before {
content: "\e020";
}
.glyphicon-home:before {
content: "\e021";
}
.glyphicon-file:before {
content: "\e022";
}
.glyphicon-time:before {
content: "\e023";
}
.glyphicon-road:before {
content: "\e024";
}
.glyphicon-download-alt:before {
content: "\e025";
}
.glyphicon-download:before {
content: "\e026";
}
.glyphicon-upload:before {
content: "\e027";
}
.glyphicon-inbox:before {
content: "\e028";
}
.glyphicon-play-circle:before {
content: "\e029";
}
.glyphicon-repeat:before {
content: "\e030";
}
.glyphicon-refresh:before {
content: "\e031";
}
.glyphicon-list-alt:before {
content: "\e032";
}
.glyphicon-lock:before {
content: "\e033";
}
.glyphicon-flag:before {
content: "\e034";
}
.glyphicon-headphones:before {
content: "\e035";
}
.glyphicon-volume-off:before {
content: "\e036";
}
.glyphicon-volume-down:before {
content: "\e037";
}
.glyphicon-volume-up:before {
content: "\e038";
}
.glyphicon-qrcode:before {
content: "\e039";
}
.glyphicon-barcode:before {
content: "\e040";
}
.glyphicon-tag:before {
content: "\e041";
}
.glyphicon-tags:before {
content: "\e042";
}
.glyphicon-book:before {
content: "\e043";
}
.glyphicon-bookmark:before {
content: "\e044";
}
.glyphicon-print:before {
content: "\e045";
}
.glyphicon-camera:before {
content: "\e046";
}
.glyphicon-font:before {
content: "\e047";
}
.glyphicon-bold:before {
content: "\e048";
}
.glyphicon-italic:before {
content: "\e049";
}
.glyphicon-text-height:before {
content: "\e050";
}
.glyphicon-text-width:before {
content: "\e051";
}
.glyphicon-align-left:before {
content: "\e052";
}
.glyphicon-align-center:before {
content: "\e053";
}
.glyphicon-align-right:before {
content: "\e054";
}
.glyphicon-align-justify:before {
content: "\e055";
}
.glyphicon-list:before {
content: "\e056";
}
.glyphicon-indent-left:before {
content: "\e057";
}
.glyphicon-indent-right:before {
content: "\e058";
}
.glyphicon-facetime-video:before {
content: "\e059";
}
.glyphicon-picture:before {
content: "\e060";
}
.glyphicon-map-marker:before {
content: "\e062";
}
.glyphicon-adjust:before {
content: "\e063";
}
.glyphicon-tint:before {
content: "\e064";
}
.glyphicon-edit:before {
content: "\e065";
}
.glyphicon-share:before {
content: "\e066";
}
.glyphicon-check:before {
content: "\e067";
}
.glyphicon-move:before {
content: "\e068";
}
.glyphicon-step-backward:before {
content: "\e069";
}
.glyphicon-fast-backward:before {
content: "\e070";
}
.glyphicon-backward:before {
content: "\e071";
}
.glyphicon-play:before {
content: "\e072";
}
.glyphicon-pause:before {
content: "\e073";
}
.glyphicon-stop:before {
content: "\e074";
}
.glyphicon-forward:before {
content: "\e075";
}
.glyphicon-fast-forward:before {
content: "\e076";
}
.glyphicon-step-forward:before {
content: "\e077";
}
.glyphicon-eject:before {
content: "\e078";
}
.glyphicon-chevron-left:before {
content: "\e079";
}
.glyphicon-chevron-right:before {
content: "\e080";
}
.glyphicon-plus-sign:before {
content: "\e081";
}
.glyphicon-minus-sign:before {
content: "\e082";
}
.glyphicon-remove-sign:before {
content: "\e083";
}
.glyphicon-ok-sign:before {
content: "\e084";
}
.glyphicon-question-sign:before {
content: "\e085";
}
.glyphicon-info-sign:before {
content: "\e086";
}
.glyphicon-screenshot:before {
content: "\e087";
}
.glyphicon-remove-circle:before {
content: "\e088";
}
.glyphicon-ok-circle:before {
content: "\e089";
}
.glyphicon-ban-circle:before {
content: "\e090";
}
.glyphicon-arrow-left:before {
content: "\e091";
}
.glyphicon-arrow-right:before {
content: "\e092";
}
.glyphicon-arrow-up:before {
content: "\e093";
}
.glyphicon-arrow-down:before {
content: "\e094";
}
.glyphicon-share-alt:before {
content: "\e095";
}
.glyphicon-resize-full:before {
content: "\e096";
}
.glyphicon-resize-small:before {
content: "\e097";
}
.glyphicon-exclamation-sign:before {
content: "\e101";
}
.glyphicon-gift:before {
content: "\e102";
}
.glyphicon-leaf:before {
content: "\e103";
}
.glyphicon-fire:before {
content: "\e104";
}
.glyphicon-eye-open:before {
content: "\e105";
}
.glyphicon-eye-close:before {
content: "\e106";
}
.glyphicon-warning-sign:before {
content: "\e107";
}
.glyphicon-plane:before {
content: "\e108";
}
.glyphicon-calendar:before {
content: "\e109";
}
.glyphicon-random:before {
content: "\e110";
}
.glyphicon-comment:before {
content: "\e111";
}
.glyphicon-magnet:before {
content: "\e112";
}
.glyphicon-chevron-up:before {
content: "\e113";
}
.glyphicon-chevron-down:before {
content: "\e114";
}
.glyphicon-retweet:before {
content: "\e115";
}
.glyphicon-shopping-cart:before {
content: "\e116";
}
.glyphicon-folder-close:before {
content: "\e117";
}
.glyphicon-folder-open:before {
content: "\e118";
}
.glyphicon-resize-vertical:before {
content: "\e119";
}
.glyphicon-resize-horizontal:before {
content: "\e120";
}
.glyphicon-hdd:before {
content: "\e121";
}
.glyphicon-bullhorn:before {
content: "\e122";
}
.glyphicon-bell:before {
content: "\e123";
}
.glyphicon-certificate:before {
content: "\e124";
}
.glyphicon-thumbs-up:before {
content: "\e125";
}
.glyphicon-thumbs-down:before {
content: "\e126";
}
.glyphicon-hand-right:before {
content: "\e127";
}
.glyphicon-hand-left:before {
content: "\e128";
}
.glyphicon-hand-up:before {
content: "\e129";
}
.glyphicon-hand-down:before {
content: "\e130";
}
.glyphicon-circle-arrow-right:before {
content: "\e131";
}
.glyphicon-circle-arrow-left:before {
content: "\e132";
}
.glyphicon-circle-arrow-up:before {
content: "\e133";
}
.glyphicon-circle-arrow-down:before {
content: "\e134";
}
.glyphicon-globe:before {
content: "\e135";
}
.glyphicon-wrench:before {
content: "\e136";
}
.glyphicon-tasks:before {
content: "\e137";
}
.glyphicon-filter:before {
content: "\e138";
}
.glyphicon-briefcase:before {
content: "\e139";
}
.glyphicon-fullscreen:before {
content: "\e140";
}
.glyphicon-dashboard:before {
content: "\e141";
}
.glyphicon-paperclip:before {
content: "\e142";
}
.glyphicon-heart-empty:before {
content: "\e143";
}
.glyphicon-link:before {
content: "\e144";
}
.glyphicon-phone:before {
content: "\e145";
}
.glyphicon-pushpin:before {
content: "\e146";
}
.glyphicon-usd:before {
content: "\e148";
}
.glyphicon-gbp:before {
content: "\e149";
}
.glyphicon-sort:before {
content: "\e150";
}
.glyphicon-sort-by-alphabet:before {
content: "\e151";
}
.glyphicon-sort-by-alphabet-alt:before {
content: "\e152";
}
.glyphicon-sort-by-order:before {
content: "\e153";
}
.glyphicon-sort-by-order-alt:before {
content: "\e154";
}
.glyphicon-sort-by-attributes:before {
content: "\e155";
}
.glyphicon-sort-by-attributes-alt:before {
content: "\e156";
}
.glyphicon-unchecked:before {
content: "\e157";
}
.glyphicon-expand:before {
content: "\e158";
}
.glyphicon-collapse-down:before {
content: "\e159";
}
.glyphicon-collapse-up:before {
content: "\e160";
}
.glyphicon-log-in:before {
content: "\e161";
}
.glyphicon-flash:before {
content: "\e162";
}
.glyphicon-log-out:before {
content: "\e163";
}
.glyphicon-new-window:before {
content: "\e164";
}
.glyphicon-record:before {
content: "\e165";
}
.glyphicon-save:before {
content: "\e166";
}
.glyphicon-open:before {
content: "\e167";
}
.glyphicon-saved:before {
content: "\e168";
}
.glyphicon-import:before {
content: "\e169";
}
.glyphicon-export:before {
content: "\e170";
}
.glyphicon-send:before {
content: "\e171";
}
.glyphicon-floppy-disk:before {
content: "\e172";
}
.glyphicon-floppy-saved:before {
content: "\e173";
}
.glyphicon-floppy-remove:before {
content: "\e174";
}
.glyphicon-floppy-save:before {
content: "\e175";
}
.glyphicon-floppy-open:before {
content: "\e176";
}
.glyphicon-credit-card:before {
content: "\e177";
}
.glyphicon-transfer:before {
content: "\e178";
}
.glyphicon-cutlery:before {
content: "\e179";
}
.glyphicon-header:before {
content: "\e180";
}
.glyphicon-compressed:before {
content: "\e181";
}
.glyphicon-earphone:before {
content: "\e182";
}
.glyphicon-phone-alt:before {
content: "\e183";
}
.glyphicon-tower:before {
content: "\e184";
}
.glyphicon-stats:before {
content: "\e185";
}
.glyphicon-sd-video:before {
content: "\e186";
}
.glyphicon-hd-video:before {
content: "\e187";
}
.glyphicon-subtitles:before {
content: "\e188";
}
.glyphicon-sound-stereo:before {
content: "\e189";
}
.glyphicon-sound-dolby:before {
content: "\e190";
}
.glyphicon-sound-5-1:before {
content: "\e191";
}
.glyphicon-sound-6-1:before {
content: "\e192";
}
.glyphicon-sound-7-1:before {
content: "\e193";
}
.glyphicon-copyright-mark:before {
content: "\e194";
}
.glyphicon-registration-mark:before {
content: "\e195";
}
.glyphicon-cloud-download:before {
content: "\e197";
}
.glyphicon-cloud-upload:before {
content: "\e198";
}
.glyphicon-tree-conifer:before {
content: "\e199";
}
.glyphicon-tree-deciduous:before {
content: "\e200";
}
.glyphicon-cd:before {
content: "\e201";
}
.glyphicon-save-file:before {
content: "\e202";
}
.glyphicon-open-file:before {
content: "\e203";
}
.glyphicon-level-up:before {
content: "\e204";
}
.glyphicon-copy:before {
content: "\e205";
}
.glyphicon-paste:before {
content: "\e206";
}
.glyphicon-alert:before {
content: "\e209";
}
.glyphicon-equalizer:before {
content: "\e210";
}
.glyphicon-king:before {
content: "\e211";
}
.glyphicon-queen:before {
content: "\e212";
}
.glyphicon-pawn:before {
content: "\e213";
}
.glyphicon-bishop:before {
content: "\e214";
}
.glyphicon-knight:before {
content: "\e215";
}
.glyphicon-baby-formula:before {
content: "\e216";
}
.glyphicon-tent:before {
content: "\26fa";
}
.glyphicon-blackboard:before {
content: "\e218";
}
.glyphicon-bed:before {
content: "\e219";
}
.glyphicon-apple:before {
content: "\f8ff";
}
.glyphicon-erase:before {
content: "\e221";
}
.glyphicon-hourglass:before {
content: "\231b";
}
.glyphicon-lamp:before {
content: "\e223";
}
.glyphicon-duplicate:before {
content: "\e224";
}
.glyphicon-piggy-bank:before {
content: "\e225";
}
.glyphicon-scissors:before {
content: "\e226";
}
.glyphicon-bitcoin:before {
content: "\e227";
}
.glyphicon-btc:before {
content: "\e227";
}
.glyphicon-xbt:before {
content: "\e227";
}
.glyphicon-yen:before {
content: "\00a5";
}
.glyphicon-jpy:before {
content: "\00a5";
}
.glyphicon-ruble:before {
content: "\20bd";
}
.glyphicon-rub:before {
content: "\20bd";
}
.glyphicon-scale:before {
content: "\e230";
}
.glyphicon-ice-lolly:before {
content: "\e231";
}
.glyphicon-ice-lolly-tasted:before {
content: "\e232";
}
.glyphicon-education:before {
content: "\e233";
}
.glyphicon-option-horizontal:before {
content: "\e234";
}
.glyphicon-option-vertical:before {
content: "\e235";
}
.glyphicon-menu-hamburger:before {
content: "\e236";
}
.glyphicon-modal-window:before {
content: "\e237";
}
.glyphicon-oil:before {
content: "\e238";
}
.glyphicon-grain:before {
content: "\e239";
}
.glyphicon-sunglasses:before {
content: "\e240";
}
.glyphicon-text-size:before {
content: "\e241";
}
.glyphicon-text-color:before {
content: "\e242";
}
.glyphicon-text-background:before {
content: "\e243";
}
.glyphicon-object-align-top:before {
content: "\e244";
}
.glyphicon-object-align-bottom:before {
content: "\e245";
}
.glyphicon-object-align-horizontal:before {
content: "\e246";
}
.glyphicon-object-align-left:before {
content: "\e247";
}
.glyphicon-object-align-vertical:before {
content: "\e248";
}
.glyphicon-object-align-right:before {
content: "\e249";
}
.glyphicon-triangle-right:before {
content: "\e250";
}
.glyphicon-triangle-left:before {
content: "\e251";
}
.glyphicon-triangle-bottom:before {
content: "\e252";
}
.glyphicon-triangle-top:before {
content: "\e253";
}
.glyphicon-console:before {
content: "\e254";
}
.glyphicon-superscript:before {
content: "\e255";
}
.glyphicon-subscript:before {
content: "\e256";
}
.glyphicon-menu-left:before {
content: "\e257";
}
.glyphicon-menu-right:before {
content: "\e258";
}
.glyphicon-menu-down:before {
content: "\e259";
}
.glyphicon-menu-up:before {
content: "\e260";
}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
*:before,
*:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
html {
font-size: 10px;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 13px;
line-height: 1.42857143;
color: #000;
background-color: #fff;
}
input,
button,
select,
textarea {
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
a {
color: #337ab7;
text-decoration: none;
}
a:hover,
a:focus {
color: #23527c;
text-decoration: underline;
}
a:focus {
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
figure {
margin: 0;
}
img {
vertical-align: middle;
}
.img-responsive,
.thumbnail > img,
.thumbnail a > img,
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
display: block;
max-width: 100%;
height: auto;
}
.img-rounded {
border-radius: 3px;
}
.img-thumbnail {
padding: 4px;
line-height: 1.42857143;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 2px;
-webkit-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
display: inline-block;
max-width: 100%;
height: auto;
}
.img-circle {
border-radius: 50%;
}
hr {
margin-top: 18px;
margin-bottom: 18px;
border: 0;
border-top: 1px solid #eeeeee;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
position: static;
width: auto;
height: auto;
margin: 0;
overflow: visible;
clip: auto;
}
[role="button"] {
cursor: pointer;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
font-family: inherit;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small,
.h1 small,
.h2 small,
.h3 small,
.h4 small,
.h5 small,
.h6 small,
h1 .small,
h2 .small,
h3 .small,
h4 .small,
h5 .small,
h6 .small,
.h1 .small,
.h2 .small,
.h3 .small,
.h4 .small,
.h5 .small,
.h6 .small {
font-weight: normal;
line-height: 1;
color: #777777;
}
h1,
.h1,
h2,
.h2,
h3,
.h3 {
margin-top: 18px;
margin-bottom: 9px;
}
h1 small,
.h1 small,
h2 small,
.h2 small,
h3 small,
.h3 small,
h1 .small,
.h1 .small,
h2 .small,
.h2 .small,
h3 .small,
.h3 .small {
font-size: 65%;
}
h4,
.h4,
h5,
.h5,
h6,
.h6 {
margin-top: 9px;
margin-bottom: 9px;
}
h4 small,
.h4 small,
h5 small,
.h5 small,
h6 small,
.h6 small,
h4 .small,
.h4 .small,
h5 .small,
.h5 .small,
h6 .small,
.h6 .small {
font-size: 75%;
}
h1,
.h1 {
font-size: 33px;
}
h2,
.h2 {
font-size: 27px;
}
h3,
.h3 {
font-size: 23px;
}
h4,
.h4 {
font-size: 17px;
}
h5,
.h5 {
font-size: 13px;
}
h6,
.h6 {
font-size: 12px;
}
p {
margin: 0 0 9px;
}
.lead {
margin-bottom: 18px;
font-size: 14px;
font-weight: 300;
line-height: 1.4;
}
@media (min-width: 768px) {
.lead {
font-size: 19.5px;
}
}
small,
.small {
font-size: 92%;
}
mark,
.mark {
background-color: #fcf8e3;
padding: .2em;
}
.text-left {
text-align: left;
}
.text-right {
text-align: right;
}
.text-center {
text-align: center;
}
.text-justify {
text-align: justify;
}
.text-nowrap {
white-space: nowrap;
}
.text-lowercase {
text-transform: lowercase;
}
.text-uppercase {
text-transform: uppercase;
}
.text-capitalize {
text-transform: capitalize;
}
.text-muted {
color: #777777;
}
.text-primary {
color: #337ab7;
}
a.text-primary:hover,
a.text-primary:focus {
color: #286090;
}
.text-success {
color: #3c763d;
}
a.text-success:hover,
a.text-success:focus {
color: #2b542c;
}
.text-info {
color: #31708f;
}
a.text-info:hover,
a.text-info:focus {
color: #245269;
}
.text-warning {
color: #8a6d3b;
}
a.text-warning:hover,
a.text-warning:focus {
color: #66512c;
}
.text-danger {
color: #a94442;
}
a.text-danger:hover,
a.text-danger:focus {
color: #843534;
}
.bg-primary {
color: #fff;
background-color: #337ab7;
}
a.bg-primary:hover,
a.bg-primary:focus {
background-color: #286090;
}
.bg-success {
background-color: #dff0d8;
}
a.bg-success:hover,
a.bg-success:focus {
background-color: #c1e2b3;
}
.bg-info {
background-color: #d9edf7;
}
a.bg-info:hover,
a.bg-info:focus {
background-color: #afd9ee;
}
.bg-warning {
background-color: #fcf8e3;
}
a.bg-warning:hover,
a.bg-warning:focus {
background-color: #f7ecb5;
}
.bg-danger {
background-color: #f2dede;
}
a.bg-danger:hover,
a.bg-danger:focus {
background-color: #e4b9b9;
}
.page-header {
padding-bottom: 8px;
margin: 36px 0 18px;
border-bottom: 1px solid #eeeeee;
}
ul,
ol {
margin-top: 0;
margin-bottom: 9px;
}
ul ul,
ol ul,
ul ol,
ol ol {
margin-bottom: 0;
}
.list-unstyled {
padding-left: 0;
list-style: none;
}
.list-inline {
padding-left: 0;
list-style: none;
margin-left: -5px;
}
.list-inline > li {
display: inline-block;
padding-left: 5px;
padding-right: 5px;
}
dl {
margin-top: 0;
margin-bottom: 18px;
}
dt,
dd {
line-height: 1.42857143;
}
dt {
font-weight: bold;
}
dd {
margin-left: 0;
}
@media (min-width: 541px) {
.dl-horizontal dt {
float: left;
width: 160px;
clear: left;
text-align: right;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.dl-horizontal dd {
margin-left: 180px;
}
}
abbr[title],
abbr[data-original-title] {
cursor: help;
border-bottom: 1px dotted #777777;
}
.initialism {
font-size: 90%;
text-transform: uppercase;
}
blockquote {
padding: 9px 18px;
margin: 0 0 18px;
font-size: inherit;
border-left: 5px solid #eeeeee;
}
blockquote p:last-child,
blockquote ul:last-child,
blockquote ol:last-child {
margin-bottom: 0;
}
blockquote footer,
blockquote small,
blockquote .small {
display: block;
font-size: 80%;
line-height: 1.42857143;
color: #777777;
}
blockquote footer:before,
blockquote small:before,
blockquote .small:before {
content: '\2014 \00A0';
}
.blockquote-reverse,
blockquote.pull-right {
padding-right: 15px;
padding-left: 0;
border-right: 5px solid #eeeeee;
border-left: 0;
text-align: right;
}
.blockquote-reverse footer:before,
blockquote.pull-right footer:before,
.blockquote-reverse small:before,
blockquote.pull-right small:before,
.blockquote-reverse .small:before,
blockquote.pull-right .small:before {
content: '';
}
.blockquote-reverse footer:after,
blockquote.pull-right footer:after,
.blockquote-reverse small:after,
blockquote.pull-right small:after,
.blockquote-reverse .small:after,
blockquote.pull-right .small:after {
content: '\00A0 \2014';
}
address {
margin-bottom: 18px;
font-style: normal;
line-height: 1.42857143;
}
code,
kbd,
pre,
samp {
font-family: monospace;
}
code {
padding: 2px 4px;
font-size: 90%;
color: #c7254e;
background-color: #f9f2f4;
border-radius: 2px;
}
kbd {
padding: 2px 4px;
font-size: 90%;
color: #888;
background-color: transparent;
border-radius: 1px;
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
}
kbd kbd {
padding: 0;
font-size: 100%;
font-weight: bold;
box-shadow: none;
}
pre {
display: block;
padding: 8.5px;
margin: 0 0 9px;
font-size: 12px;
line-height: 1.42857143;
word-break: break-all;
word-wrap: break-word;
color: #333333;
background-color: #f5f5f5;
border: 1px solid #ccc;
border-radius: 2px;
}
pre code {
padding: 0;
font-size: inherit;
color: inherit;
white-space: pre-wrap;
background-color: transparent;
border-radius: 0;
}
.pre-scrollable {
max-height: 340px;
overflow-y: scroll;
}
.container {
margin-right: auto;
margin-left: auto;
padding-left: 0px;
padding-right: 0px;
}
@media (min-width: 768px) {
.container {
width: 768px;
}
}
@media (min-width: 992px) {
.container {
width: 940px;
}
}
@media (min-width: 1200px) {
.container {
width: 1140px;
}
}
.container-fluid {
margin-right: auto;
margin-left: auto;
padding-left: 0px;
padding-right: 0px;
}
.row {
margin-left: 0px;
margin-right: 0px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
position: relative;
min-height: 1px;
padding-left: 0px;
padding-right: 0px;
}
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
float: left;
}
.col-xs-12 {
width: 100%;
}
.col-xs-11 {
width: 91.66666667%;
}
.col-xs-10 {
width: 83.33333333%;
}
.col-xs-9 {
width: 75%;
}
.col-xs-8 {
width: 66.66666667%;
}
.col-xs-7 {
width: 58.33333333%;
}
.col-xs-6 {
width: 50%;
}
.col-xs-5 {
width: 41.66666667%;
}
.col-xs-4 {
width: 33.33333333%;
}
.col-xs-3 {
width: 25%;
}
.col-xs-2 {
width: 16.66666667%;
}
.col-xs-1 {
width: 8.33333333%;
}
.col-xs-pull-12 {
right: 100%;
}
.col-xs-pull-11 {
right: 91.66666667%;
}
.col-xs-pull-10 {
right: 83.33333333%;
}
.col-xs-pull-9 {
right: 75%;
}
.col-xs-pull-8 {
right: 66.66666667%;
}
.col-xs-pull-7 {
right: 58.33333333%;
}
.col-xs-pull-6 {
right: 50%;
}
.col-xs-pull-5 {
right: 41.66666667%;
}
.col-xs-pull-4 {
right: 33.33333333%;
}
.col-xs-pull-3 {
right: 25%;
}
.col-xs-pull-2 {
right: 16.66666667%;
}
.col-xs-pull-1 {
right: 8.33333333%;
}
.col-xs-pull-0 {
right: auto;
}
.col-xs-push-12 {
left: 100%;
}
.col-xs-push-11 {
left: 91.66666667%;
}
.col-xs-push-10 {
left: 83.33333333%;
}
.col-xs-push-9 {
left: 75%;
}
.col-xs-push-8 {
left: 66.66666667%;
}
.col-xs-push-7 {
left: 58.33333333%;
}
.col-xs-push-6 {
left: 50%;
}
.col-xs-push-5 {
left: 41.66666667%;
}
.col-xs-push-4 {
left: 33.33333333%;
}
.col-xs-push-3 {
left: 25%;
}
.col-xs-push-2 {
left: 16.66666667%;
}
.col-xs-push-1 {
left: 8.33333333%;
}
.col-xs-push-0 {
left: auto;
}
.col-xs-offset-12 {
margin-left: 100%;
}
.col-xs-offset-11 {
margin-left: 91.66666667%;
}
.col-xs-offset-10 {
margin-left: 83.33333333%;
}
.col-xs-offset-9 {
margin-left: 75%;
}
.col-xs-offset-8 {
margin-left: 66.66666667%;
}
.col-xs-offset-7 {
margin-left: 58.33333333%;
}
.col-xs-offset-6 {
margin-left: 50%;
}
.col-xs-offset-5 {
margin-left: 41.66666667%;
}
.col-xs-offset-4 {
margin-left: 33.33333333%;
}
.col-xs-offset-3 {
margin-left: 25%;
}
.col-xs-offset-2 {
margin-left: 16.66666667%;
}
.col-xs-offset-1 {
margin-left: 8.33333333%;
}
.col-xs-offset-0 {
margin-left: 0%;
}
@media (min-width: 768px) {
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
float: left;
}
.col-sm-12 {
width: 100%;
}
.col-sm-11 {
width: 91.66666667%;
}
.col-sm-10 {
width: 83.33333333%;
}
.col-sm-9 {
width: 75%;
}
.col-sm-8 {
width: 66.66666667%;
}
.col-sm-7 {
width: 58.33333333%;
}
.col-sm-6 {
width: 50%;
}
.col-sm-5 {
width: 41.66666667%;
}
.col-sm-4 {
width: 33.33333333%;
}
.col-sm-3 {
width: 25%;
}
.col-sm-2 {
width: 16.66666667%;
}
.col-sm-1 {
width: 8.33333333%;
}
.col-sm-pull-12 {
right: 100%;
}
.col-sm-pull-11 {
right: 91.66666667%;
}
.col-sm-pull-10 {
right: 83.33333333%;
}
.col-sm-pull-9 {
right: 75%;
}
.col-sm-pull-8 {
right: 66.66666667%;
}
.col-sm-pull-7 {
right: 58.33333333%;
}
.col-sm-pull-6 {
right: 50%;
}
.col-sm-pull-5 {
right: 41.66666667%;
}
.col-sm-pull-4 {
right: 33.33333333%;
}
.col-sm-pull-3 {
right: 25%;
}
.col-sm-pull-2 {
right: 16.66666667%;
}
.col-sm-pull-1 {
right: 8.33333333%;
}
.col-sm-pull-0 {
right: auto;
}
.col-sm-push-12 {
left: 100%;
}
.col-sm-push-11 {
left: 91.66666667%;
}
.col-sm-push-10 {
left: 83.33333333%;
}
.col-sm-push-9 {
left: 75%;
}
.col-sm-push-8 {
left: 66.66666667%;
}
.col-sm-push-7 {
left: 58.33333333%;
}
.col-sm-push-6 {
left: 50%;
}
.col-sm-push-5 {
left: 41.66666667%;
}
.col-sm-push-4 {
left: 33.33333333%;
}
.col-sm-push-3 {
left: 25%;
}
.col-sm-push-2 {
left: 16.66666667%;
}
.col-sm-push-1 {
left: 8.33333333%;
}
.col-sm-push-0 {
left: auto;
}
.col-sm-offset-12 {
margin-left: 100%;
}
.col-sm-offset-11 {
margin-left: 91.66666667%;
}
.col-sm-offset-10 {
margin-left: 83.33333333%;
}
.col-sm-offset-9 {
margin-left: 75%;
}
.col-sm-offset-8 {
margin-left: 66.66666667%;
}
.col-sm-offset-7 {
margin-left: 58.33333333%;
}
.col-sm-offset-6 {
margin-left: 50%;
}
.col-sm-offset-5 {
margin-left: 41.66666667%;
}
.col-sm-offset-4 {
margin-left: 33.33333333%;
}
.col-sm-offset-3 {
margin-left: 25%;
}
.col-sm-offset-2 {
margin-left: 16.66666667%;
}
.col-sm-offset-1 {
margin-left: 8.33333333%;
}
.col-sm-offset-0 {
margin-left: 0%;
}
}
@media (min-width: 992px) {
.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
float: left;
}
.col-md-12 {
width: 100%;
}
.col-md-11 {
width: 91.66666667%;
}
.col-md-10 {
width: 83.33333333%;
}
.col-md-9 {
width: 75%;
}
.col-md-8 {
width: 66.66666667%;
}
.col-md-7 {
width: 58.33333333%;
}
.col-md-6 {
width: 50%;
}
.col-md-5 {
width: 41.66666667%;
}
.col-md-4 {
width: 33.33333333%;
}
.col-md-3 {
width: 25%;
}
.col-md-2 {
width: 16.66666667%;
}
.col-md-1 {
width: 8.33333333%;
}
.col-md-pull-12 {
right: 100%;
}
.col-md-pull-11 {
right: 91.66666667%;
}
.col-md-pull-10 {
right: 83.33333333%;
}
.col-md-pull-9 {
right: 75%;
}
.col-md-pull-8 {
right: 66.66666667%;
}
.col-md-pull-7 {
right: 58.33333333%;
}
.col-md-pull-6 {
right: 50%;
}
.col-md-pull-5 {
right: 41.66666667%;
}
.col-md-pull-4 {
right: 33.33333333%;
}
.col-md-pull-3 {
right: 25%;
}
.col-md-pull-2 {
right: 16.66666667%;
}
.col-md-pull-1 {
right: 8.33333333%;
}
.col-md-pull-0 {
right: auto;
}
.col-md-push-12 {
left: 100%;
}
.col-md-push-11 {
left: 91.66666667%;
}
.col-md-push-10 {
left: 83.33333333%;
}
.col-md-push-9 {
left: 75%;
}
.col-md-push-8 {
left: 66.66666667%;
}
.col-md-push-7 {
left: 58.33333333%;
}
.col-md-push-6 {
left: 50%;
}
.col-md-push-5 {
left: 41.66666667%;
}
.col-md-push-4 {
left: 33.33333333%;
}
.col-md-push-3 {
left: 25%;
}
.col-md-push-2 {
left: 16.66666667%;
}
.col-md-push-1 {
left: 8.33333333%;
}
.col-md-push-0 {
left: auto;
}
.col-md-offset-12 {
margin-left: 100%;
}
.col-md-offset-11 {
margin-left: 91.66666667%;
}
.col-md-offset-10 {
margin-left: 83.33333333%;
}
.col-md-offset-9 {
margin-left: 75%;
}
.col-md-offset-8 {
margin-left: 66.66666667%;
}
.col-md-offset-7 {
margin-left: 58.33333333%;
}
.col-md-offset-6 {
margin-left: 50%;
}
.col-md-offset-5 {
margin-left: 41.66666667%;
}
.col-md-offset-4 {
margin-left: 33.33333333%;
}
.col-md-offset-3 {
margin-left: 25%;
}
.col-md-offset-2 {
margin-left: 16.66666667%;
}
.col-md-offset-1 {
margin-left: 8.33333333%;
}
.col-md-offset-0 {
margin-left: 0%;
}
}
@media (min-width: 1200px) {
.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
float: left;
}
.col-lg-12 {
width: 100%;
}
.col-lg-11 {
width: 91.66666667%;
}
.col-lg-10 {
width: 83.33333333%;
}
.col-lg-9 {
width: 75%;
}
.col-lg-8 {
width: 66.66666667%;
}
.col-lg-7 {
width: 58.33333333%;
}
.col-lg-6 {
width: 50%;
}
.col-lg-5 {
width: 41.66666667%;
}
.col-lg-4 {
width: 33.33333333%;
}
.col-lg-3 {
width: 25%;
}
.col-lg-2 {
width: 16.66666667%;
}
.col-lg-1 {
width: 8.33333333%;
}
.col-lg-pull-12 {
right: 100%;
}
.col-lg-pull-11 {
right: 91.66666667%;
}
.col-lg-pull-10 {
right: 83.33333333%;
}
.col-lg-pull-9 {
right: 75%;
}
.col-lg-pull-8 {
right: 66.66666667%;
}
.col-lg-pull-7 {
right: 58.33333333%;
}
.col-lg-pull-6 {
right: 50%;
}
.col-lg-pull-5 {
right: 41.66666667%;
}
.col-lg-pull-4 {
right: 33.33333333%;
}
.col-lg-pull-3 {
right: 25%;
}
.col-lg-pull-2 {
right: 16.66666667%;
}
.col-lg-pull-1 {
right: 8.33333333%;
}
.col-lg-pull-0 {
right: auto;
}
.col-lg-push-12 {
left: 100%;
}
.col-lg-push-11 {
left: 91.66666667%;
}
.col-lg-push-10 {
left: 83.33333333%;
}
.col-lg-push-9 {
left: 75%;
}
.col-lg-push-8 {
left: 66.66666667%;
}
.col-lg-push-7 {
left: 58.33333333%;
}
.col-lg-push-6 {
left: 50%;
}
.col-lg-push-5 {
left: 41.66666667%;
}
.col-lg-push-4 {
left: 33.33333333%;
}
.col-lg-push-3 {
left: 25%;
}
.col-lg-push-2 {
left: 16.66666667%;
}
.col-lg-push-1 {
left: 8.33333333%;
}
.col-lg-push-0 {
left: auto;
}
.col-lg-offset-12 {
margin-left: 100%;
}
.col-lg-offset-11 {
margin-left: 91.66666667%;
}
.col-lg-offset-10 {
margin-left: 83.33333333%;
}
.col-lg-offset-9 {
margin-left: 75%;
}
.col-lg-offset-8 {
margin-left: 66.66666667%;
}
.col-lg-offset-7 {
margin-left: 58.33333333%;
}
.col-lg-offset-6 {
margin-left: 50%;
}
.col-lg-offset-5 {
margin-left: 41.66666667%;
}
.col-lg-offset-4 {
margin-left: 33.33333333%;
}
.col-lg-offset-3 {
margin-left: 25%;
}
.col-lg-offset-2 {
margin-left: 16.66666667%;
}
.col-lg-offset-1 {
margin-left: 8.33333333%;
}
.col-lg-offset-0 {
margin-left: 0%;
}
}
table {
background-color: transparent;
}
caption {
padding-top: 8px;
padding-bottom: 8px;
color: #777777;
text-align: left;
}
th {
text-align: left;
}
.table {
width: 100%;
max-width: 100%;
margin-bottom: 18px;
}
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
padding: 8px;
line-height: 1.42857143;
vertical-align: top;
border-top: 1px solid #ddd;
}
.table > thead > tr > th {
vertical-align: bottom;
border-bottom: 2px solid #ddd;
}
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > td {
border-top: 0;
}
.table > tbody + tbody {
border-top: 2px solid #ddd;
}
.table .table {
background-color: #fff;
}
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
padding: 5px;
}
.table-bordered {
border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
border-bottom-width: 2px;
}
.table-striped > tbody > tr:nth-of-type(odd) {
background-color: #f9f9f9;
}
.table-hover > tbody > tr:hover {
background-color: #f5f5f5;
}
table col[class*="col-"] {
position: static;
float: none;
display: table-column;
}
table td[class*="col-"],
table th[class*="col-"] {
position: static;
float: none;
display: table-cell;
}
.table > thead > tr > td.active,
.table > tbody > tr > td.active,
.table > tfoot > tr > td.active,
.table > thead > tr > th.active,
.table > tbody > tr > th.active,
.table > tfoot > tr > th.active,
.table > thead > tr.active > td,
.table > tbody > tr.active > td,
.table > tfoot > tr.active > td,
.table > thead > tr.active > th,
.table > tbody > tr.active > th,
.table > tfoot > tr.active > th {
background-color: #f5f5f5;
}
.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
background-color: #e8e8e8;
}
.table > thead > tr > td.success,
.table > tbody > tr > td.success,
.table > tfoot > tr > td.success,
.table > thead > tr > th.success,
.table > tbody > tr > th.success,
.table > tfoot > tr > th.success,
.table > thead > tr.success > td,
.table > tbody > tr.success > td,
.table > tfoot > tr.success > td,
.table > thead > tr.success > th,
.table > tbody > tr.success > th,
.table > tfoot > tr.success > th {
background-color: #dff0d8;
}
.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
background-color: #d0e9c6;
}
.table > thead > tr > td.info,
.table > tbody > tr > td.info,
.table > tfoot > tr > td.info,
.table > thead > tr > th.info,
.table > tbody > tr > th.info,
.table > tfoot > tr > th.info,
.table > thead > tr.info > td,
.table > tbody > tr.info > td,
.table > tfoot > tr.info > td,
.table > thead > tr.info > th,
.table > tbody > tr.info > th,
.table > tfoot > tr.info > th {
background-color: #d9edf7;
}
.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
background-color: #c4e3f3;
}
.table > thead > tr > td.warning,
.table > tbody > tr > td.warning,
.table > tfoot > tr > td.warning,
.table > thead > tr > th.warning,
.table > tbody > tr > th.warning,
.table > tfoot > tr > th.warning,
.table > thead > tr.warning > td,
.table > tbody > tr.warning > td,
.table > tfoot > tr.warning > td,
.table > thead > tr.warning > th,
.table > tbody > tr.warning > th,
.table > tfoot > tr.warning > th {
background-color: #fcf8e3;
}
.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
background-color: #faf2cc;
}
.table > thead > tr > td.danger,
.table > tbody > tr > td.danger,
.table > tfoot > tr > td.danger,
.table > thead > tr > th.danger,
.table > tbody > tr > th.danger,
.table > tfoot > tr > th.danger,
.table > thead > tr.danger > td,
.table > tbody > tr.danger > td,
.table > tfoot > tr.danger > td,
.table > thead > tr.danger > th,
.table > tbody > tr.danger > th,
.table > tfoot > tr.danger > th {
background-color: #f2dede;
}
.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
background-color: #ebcccc;
}
.table-responsive {
overflow-x: auto;
min-height: 0.01%;
}
@media screen and (max-width: 767px) {
.table-responsive {
width: 100%;
margin-bottom: 13.5px;
overflow-y: hidden;
-ms-overflow-style: -ms-autohiding-scrollbar;
border: 1px solid #ddd;
}
.table-responsive > .table {
margin-bottom: 0;
}
.table-responsive > .table > thead > tr > th,
.table-responsive > .table > tbody > tr > th,
.table-responsive > .table > tfoot > tr > th,
.table-responsive > .table > thead > tr > td,
.table-responsive > .table > tbody > tr > td,
.table-responsive > .table > tfoot > tr > td {
white-space: nowrap;
}
.table-responsive > .table-bordered {
border: 0;
}
.table-responsive > .table-bordered > thead > tr > th:first-child,
.table-responsive > .table-bordered > tbody > tr > th:first-child,
.table-responsive > .table-bordered > tfoot > tr > th:first-child,
.table-responsive > .table-bordered > thead > tr > td:first-child,
.table-responsive > .table-bordered > tbody > tr > td:first-child,
.table-responsive > .table-bordered > tfoot > tr > td:first-child {
border-left: 0;
}
.table-responsive > .table-bordered > thead > tr > th:last-child,
.table-responsive > .table-bordered > tbody > tr > th:last-child,
.table-responsive > .table-bordered > tfoot > tr > th:last-child,
.table-responsive > .table-bordered > thead > tr > td:last-child,
.table-responsive > .table-bordered > tbody > tr > td:last-child,
.table-responsive > .table-bordered > tfoot > tr > td:last-child {
border-right: 0;
}
.table-responsive > .table-bordered > tbody > tr:last-child > th,
.table-responsive > .table-bordered > tfoot > tr:last-child > th,
.table-responsive > .table-bordered > tbody > tr:last-child > td,
.table-responsive > .table-bordered > tfoot > tr:last-child > td {
border-bottom: 0;
}
}
fieldset {
padding: 0;
margin: 0;
border: 0;
min-width: 0;
}
legend {
display: block;
width: 100%;
padding: 0;
margin-bottom: 18px;
font-size: 19.5px;
line-height: inherit;
color: #333333;
border: 0;
border-bottom: 1px solid #e5e5e5;
}
label {
display: inline-block;
max-width: 100%;
margin-bottom: 5px;
font-weight: bold;
}
input[type="search"] {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
input[type="radio"],
input[type="checkbox"] {
margin: 4px 0 0;
margin-top: 1px \9;
line-height: normal;
}
input[type="file"] {
display: block;
}
input[type="range"] {
display: block;
width: 100%;
}
select[multiple],
select[size] {
height: auto;
}
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
output {
display: block;
padding-top: 7px;
font-size: 13px;
line-height: 1.42857143;
color: #555555;
}
.form-control {
display: block;
width: 100%;
height: 32px;
padding: 6px 12px;
font-size: 13px;
line-height: 1.42857143;
color: #555555;
background-color: #fff;
background-image: none;
border: 1px solid #ccc;
border-radius: 2px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.form-control:focus {
border-color: #66afe9;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.form-control::-moz-placeholder {
color: #999;
opacity: 1;
}
.form-control:-ms-input-placeholder {
color: #999;
}
.form-control::-webkit-input-placeholder {
color: #999;
}
.form-control::-ms-expand {
border: 0;
background-color: transparent;
}
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
background-color: #eeeeee;
opacity: 1;
}
.form-control[disabled],
fieldset[disabled] .form-control {
cursor: not-allowed;
}
textarea.form-control {
height: auto;
}
input[type="search"] {
-webkit-appearance: none;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
input[type="date"].form-control,
input[type="time"].form-control,
input[type="datetime-local"].form-control,
input[type="month"].form-control {
line-height: 32px;
}
input[type="date"].input-sm,
input[type="time"].input-sm,
input[type="datetime-local"].input-sm,
input[type="month"].input-sm,
.input-group-sm input[type="date"],
.input-group-sm input[type="time"],
.input-group-sm input[type="datetime-local"],
.input-group-sm input[type="month"] {
line-height: 30px;
}
input[type="date"].input-lg,
input[type="time"].input-lg,
input[type="datetime-local"].input-lg,
input[type="month"].input-lg,
.input-group-lg input[type="date"],
.input-group-lg input[type="time"],
.input-group-lg input[type="datetime-local"],
.input-group-lg input[type="month"] {
line-height: 45px;
}
}
.form-group {
margin-bottom: 15px;
}
.radio,
.checkbox {
position: relative;
display: block;
margin-top: 10px;
margin-bottom: 10px;
}
.radio label,
.checkbox label {
min-height: 18px;
padding-left: 20px;
margin-bottom: 0;
font-weight: normal;
cursor: pointer;
}
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
position: absolute;
margin-left: -20px;
margin-top: 4px \9;
}
.radio + .radio,
.checkbox + .checkbox {
margin-top: -5px;
}
.radio-inline,
.checkbox-inline {
position: relative;
display: inline-block;
padding-left: 20px;
margin-bottom: 0;
vertical-align: middle;
font-weight: normal;
cursor: pointer;
}
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
margin-top: 0;
margin-left: 10px;
}
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"].disabled,
input[type="checkbox"].disabled,
fieldset[disabled] input[type="radio"],
fieldset[disabled] input[type="checkbox"] {
cursor: not-allowed;
}
.radio-inline.disabled,
.checkbox-inline.disabled,
fieldset[disabled] .radio-inline,
fieldset[disabled] .checkbox-inline {
cursor: not-allowed;
}
.radio.disabled label,
.checkbox.disabled label,
fieldset[disabled] .radio label,
fieldset[disabled] .checkbox label {
cursor: not-allowed;
}
.form-control-static {
padding-top: 7px;
padding-bottom: 7px;
margin-bottom: 0;
min-height: 31px;
}
.form-control-static.input-lg,
.form-control-static.input-sm {
padding-left: 0;
padding-right: 0;
}
.input-sm {
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
select.input-sm {
height: 30px;
line-height: 30px;
}
textarea.input-sm,
select[multiple].input-sm {
height: auto;
}
.form-group-sm .form-control {
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
.form-group-sm select.form-control {
height: 30px;
line-height: 30px;
}
.form-group-sm textarea.form-control,
.form-group-sm select[multiple].form-control {
height: auto;
}
.form-group-sm .form-control-static {
height: 30px;
min-height: 30px;
padding: 6px 10px;
font-size: 12px;
line-height: 1.5;
}
.input-lg {
height: 45px;
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
border-radius: 3px;
}
select.input-lg {
height: 45px;
line-height: 45px;
}
textarea.input-lg,
select[multiple].input-lg {
height: auto;
}
.form-group-lg .form-control {
height: 45px;
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
border-radius: 3px;
}
.form-group-lg select.form-control {
height: 45px;
line-height: 45px;
}
.form-group-lg textarea.form-control,
.form-group-lg select[multiple].form-control {
height: auto;
}
.form-group-lg .form-control-static {
height: 45px;
min-height: 35px;
padding: 11px 16px;
font-size: 17px;
line-height: 1.3333333;
}
.has-feedback {
position: relative;
}
.has-feedback .form-control {
padding-right: 40px;
}
.form-control-feedback {
position: absolute;
top: 0;
right: 0;
z-index: 2;
display: block;
width: 32px;
height: 32px;
line-height: 32px;
text-align: center;
pointer-events: none;
}
.input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback {
width: 45px;
height: 45px;
line-height: 45px;
}
.input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback {
width: 30px;
height: 30px;
line-height: 30px;
}
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline,
.has-success.radio label,
.has-success.checkbox label,
.has-success.radio-inline label,
.has-success.checkbox-inline label {
color: #3c763d;
}
.has-success .form-control {
border-color: #3c763d;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-success .form-control:focus {
border-color: #2b542c;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
}
.has-success .input-group-addon {
color: #3c763d;
border-color: #3c763d;
background-color: #dff0d8;
}
.has-success .form-control-feedback {
color: #3c763d;
}
.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
.has-warning .checkbox-inline,
.has-warning.radio label,
.has-warning.checkbox label,
.has-warning.radio-inline label,
.has-warning.checkbox-inline label {
color: #8a6d3b;
}
.has-warning .form-control {
border-color: #8a6d3b;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-warning .form-control:focus {
border-color: #66512c;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
}
.has-warning .input-group-addon {
color: #8a6d3b;
border-color: #8a6d3b;
background-color: #fcf8e3;
}
.has-warning .form-control-feedback {
color: #8a6d3b;
}
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline,
.has-error.radio label,
.has-error.checkbox label,
.has-error.radio-inline label,
.has-error.checkbox-inline label {
color: #a94442;
}
.has-error .form-control {
border-color: #a94442;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-error .form-control:focus {
border-color: #843534;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
}
.has-error .input-group-addon {
color: #a94442;
border-color: #a94442;
background-color: #f2dede;
}
.has-error .form-control-feedback {
color: #a94442;
}
.has-feedback label ~ .form-control-feedback {
top: 23px;
}
.has-feedback label.sr-only ~ .form-control-feedback {
top: 0;
}
.help-block {
display: block;
margin-top: 5px;
margin-bottom: 10px;
color: #404040;
}
@media (min-width: 768px) {
.form-inline .form-group {
display: inline-block;
margin-bottom: 0;
vertical-align: middle;
}
.form-inline .form-control {
display: inline-block;
width: auto;
vertical-align: middle;
}
.form-inline .form-control-static {
display: inline-block;
}
.form-inline .input-group {
display: inline-table;
vertical-align: middle;
}
.form-inline .input-group .input-group-addon,
.form-inline .input-group .input-group-btn,
.form-inline .input-group .form-control {
width: auto;
}
.form-inline .input-group > .form-control {
width: 100%;
}
.form-inline .control-label {
margin-bottom: 0;
vertical-align: middle;
}
.form-inline .radio,
.form-inline .checkbox {
display: inline-block;
margin-top: 0;
margin-bottom: 0;
vertical-align: middle;
}
.form-inline .radio label,
.form-inline .checkbox label {
padding-left: 0;
}
.form-inline .radio input[type="radio"],
.form-inline .checkbox input[type="checkbox"] {
position: relative;
margin-left: 0;
}
.form-inline .has-feedback .form-control-feedback {
top: 0;
}
}
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
margin-top: 0;
margin-bottom: 0;
padding-top: 7px;
}
.form-horizontal .radio,
.form-horizontal .checkbox {
min-height: 25px;
}
.form-horizontal .form-group {
margin-left: 0px;
margin-right: 0px;
}
@media (min-width: 768px) {
.form-horizontal .control-label {
text-align: right;
margin-bottom: 0;
padding-top: 7px;
}
}
.form-horizontal .has-feedback .form-control-feedback {
right: 0px;
}
@media (min-width: 768px) {
.form-horizontal .form-group-lg .control-label {
padding-top: 11px;
font-size: 17px;
}
}
@media (min-width: 768px) {
.form-horizontal .form-group-sm .control-label {
padding-top: 6px;
font-size: 12px;
}
}
.btn {
display: inline-block;
margin-bottom: 0;
font-weight: normal;
text-align: center;
vertical-align: middle;
touch-action: manipulation;
cursor: pointer;
background-image: none;
border: 1px solid transparent;
white-space: nowrap;
padding: 6px 12px;
font-size: 13px;
line-height: 1.42857143;
border-radius: 2px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
.btn:hover,
.btn:focus,
.btn.focus {
color: #333;
text-decoration: none;
}
.btn:active,
.btn.active {
outline: 0;
background-image: none;
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
cursor: not-allowed;
opacity: 0.65;
filter: alpha(opacity=65);
-webkit-box-shadow: none;
box-shadow: none;
}
a.btn.disabled,
fieldset[disabled] a.btn {
pointer-events: none;
}
.btn-default {
color: #333;
background-color: #fff;
border-color: #ccc;
}
.btn-default:focus,
.btn-default.focus {
color: #333;
background-color: #e6e6e6;
border-color: #8c8c8c;
}
.btn-default:hover {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
.btn-default:active:hover,
.btn-default.active:hover,
.open > .dropdown-toggle.btn-default:hover,
.btn-default:active:focus,
.btn-default.active:focus,
.open > .dropdown-toggle.btn-default:focus,
.btn-default:active.focus,
.btn-default.active.focus,
.open > .dropdown-toggle.btn-default.focus {
color: #333;
background-color: #d4d4d4;
border-color: #8c8c8c;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
background-image: none;
}
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus {
background-color: #fff;
border-color: #ccc;
}
.btn-default .badge {
color: #fff;
background-color: #333;
}
.btn-primary {
color: #fff;
background-color: #337ab7;
border-color: #2e6da4;
}
.btn-primary:focus,
.btn-primary.focus {
color: #fff;
background-color: #286090;
border-color: #122b40;
}
.btn-primary:hover {
color: #fff;
background-color: #286090;
border-color: #204d74;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
color: #fff;
background-color: #286090;
border-color: #204d74;
}
.btn-primary:active:hover,
.btn-primary.active:hover,
.open > .dropdown-toggle.btn-primary:hover,
.btn-primary:active:focus,
.btn-primary.active:focus,
.open > .dropdown-toggle.btn-primary:focus,
.btn-primary:active.focus,
.btn-primary.active.focus,
.open > .dropdown-toggle.btn-primary.focus {
color: #fff;
background-color: #204d74;
border-color: #122b40;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
background-image: none;
}
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus {
background-color: #337ab7;
border-color: #2e6da4;
}
.btn-primary .badge {
color: #337ab7;
background-color: #fff;
}
.btn-success {
color: #fff;
background-color: #5cb85c;
border-color: #4cae4c;
}
.btn-success:focus,
.btn-success.focus {
color: #fff;
background-color: #449d44;
border-color: #255625;
}
.btn-success:hover {
color: #fff;
background-color: #449d44;
border-color: #398439;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
color: #fff;
background-color: #449d44;
border-color: #398439;
}
.btn-success:active:hover,
.btn-success.active:hover,
.open > .dropdown-toggle.btn-success:hover,
.btn-success:active:focus,
.btn-success.active:focus,
.open > .dropdown-toggle.btn-success:focus,
.btn-success:active.focus,
.btn-success.active.focus,
.open > .dropdown-toggle.btn-success.focus {
color: #fff;
background-color: #398439;
border-color: #255625;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
background-image: none;
}
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus {
background-color: #5cb85c;
border-color: #4cae4c;
}
.btn-success .badge {
color: #5cb85c;
background-color: #fff;
}
.btn-info {
color: #fff;
background-color: #5bc0de;
border-color: #46b8da;
}
.btn-info:focus,
.btn-info.focus {
color: #fff;
background-color: #31b0d5;
border-color: #1b6d85;
}
.btn-info:hover {
color: #fff;
background-color: #31b0d5;
border-color: #269abc;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
color: #fff;
background-color: #31b0d5;
border-color: #269abc;
}
.btn-info:active:hover,
.btn-info.active:hover,
.open > .dropdown-toggle.btn-info:hover,
.btn-info:active:focus,
.btn-info.active:focus,
.open > .dropdown-toggle.btn-info:focus,
.btn-info:active.focus,
.btn-info.active.focus,
.open > .dropdown-toggle.btn-info.focus {
color: #fff;
background-color: #269abc;
border-color: #1b6d85;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
background-image: none;
}
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus {
background-color: #5bc0de;
border-color: #46b8da;
}
.btn-info .badge {
color: #5bc0de;
background-color: #fff;
}
.btn-warning {
color: #fff;
background-color: #f0ad4e;
border-color: #eea236;
}
.btn-warning:focus,
.btn-warning.focus {
color: #fff;
background-color: #ec971f;
border-color: #985f0d;
}
.btn-warning:hover {
color: #fff;
background-color: #ec971f;
border-color: #d58512;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
color: #fff;
background-color: #ec971f;
border-color: #d58512;
}
.btn-warning:active:hover,
.btn-warning.active:hover,
.open > .dropdown-toggle.btn-warning:hover,
.btn-warning:active:focus,
.btn-warning.active:focus,
.open > .dropdown-toggle.btn-warning:focus,
.btn-warning:active.focus,
.btn-warning.active.focus,
.open > .dropdown-toggle.btn-warning.focus {
color: #fff;
background-color: #d58512;
border-color: #985f0d;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
background-image: none;
}
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus {
background-color: #f0ad4e;
border-color: #eea236;
}
.btn-warning .badge {
color: #f0ad4e;
background-color: #fff;
}
.btn-danger {
color: #fff;
background-color: #d9534f;
border-color: #d43f3a;
}
.btn-danger:focus,
.btn-danger.focus {
color: #fff;
background-color: #c9302c;
border-color: #761c19;
}
.btn-danger:hover {
color: #fff;
background-color: #c9302c;
border-color: #ac2925;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
color: #fff;
background-color: #c9302c;
border-color: #ac2925;
}
.btn-danger:active:hover,
.btn-danger.active:hover,
.open > .dropdown-toggle.btn-danger:hover,
.btn-danger:active:focus,
.btn-danger.active:focus,
.open > .dropdown-toggle.btn-danger:focus,
.btn-danger:active.focus,
.btn-danger.active.focus,
.open > .dropdown-toggle.btn-danger.focus {
color: #fff;
background-color: #ac2925;
border-color: #761c19;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
background-image: none;
}
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus {
background-color: #d9534f;
border-color: #d43f3a;
}
.btn-danger .badge {
color: #d9534f;
background-color: #fff;
}
.btn-link {
color: #337ab7;
font-weight: normal;
border-radius: 0;
}
.btn-link,
.btn-link:active,
.btn-link.active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
background-color: transparent;
-webkit-box-shadow: none;
box-shadow: none;
}
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
border-color: transparent;
}
.btn-link:hover,
.btn-link:focus {
color: #23527c;
text-decoration: underline;
background-color: transparent;
}
.btn-link[disabled]:hover,
fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus {
color: #777777;
text-decoration: none;
}
.btn-lg,
.btn-group-lg > .btn {
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
border-radius: 3px;
}
.btn-sm,
.btn-group-sm > .btn {
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
.btn-xs,
.btn-group-xs > .btn {
padding: 1px 5px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
.btn-block {
display: block;
width: 100%;
}
.btn-block + .btn-block {
margin-top: 5px;
}
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
width: 100%;
}
.fade {
opacity: 0;
-webkit-transition: opacity 0.15s linear;
-o-transition: opacity 0.15s linear;
transition: opacity 0.15s linear;
}
.fade.in {
opacity: 1;
}
.collapse {
display: none;
}
.collapse.in {
display: block;
}
tr.collapse.in {
display: table-row;
}
tbody.collapse.in {
display: table-row-group;
}
.collapsing {
position: relative;
height: 0;
overflow: hidden;
-webkit-transition-property: height, visibility;
transition-property: height, visibility;
-webkit-transition-duration: 0.35s;
transition-duration: 0.35s;
-webkit-transition-timing-function: ease;
transition-timing-function: ease;
}
.caret {
display: inline-block;
width: 0;
height: 0;
margin-left: 2px;
vertical-align: middle;
border-top: 4px dashed;
border-top: 4px solid \9;
border-right: 4px solid transparent;
border-left: 4px solid transparent;
}
.dropup,
.dropdown {
position: relative;
}
.dropdown-toggle:focus {
outline: 0;
}
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: 1000;
display: none;
float: left;
min-width: 160px;
padding: 5px 0;
margin: 2px 0 0;
list-style: none;
font-size: 13px;
text-align: left;
background-color: #fff;
border: 1px solid #ccc;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 2px;
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
background-clip: padding-box;
}
.dropdown-menu.pull-right {
right: 0;
left: auto;
}
.dropdown-menu .divider {
height: 1px;
margin: 8px 0;
overflow: hidden;
background-color: #e5e5e5;
}
.dropdown-menu > li > a {
display: block;
padding: 3px 20px;
clear: both;
font-weight: normal;
line-height: 1.42857143;
color: #333333;
white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
text-decoration: none;
color: #262626;
background-color: #f5f5f5;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
color: #fff;
text-decoration: none;
outline: 0;
background-color: #337ab7;
}
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
color: #777777;
}
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
text-decoration: none;
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
cursor: not-allowed;
}
.open > .dropdown-menu {
display: block;
}
.open > a {
outline: 0;
}
.dropdown-menu-right {
left: auto;
right: 0;
}
.dropdown-menu-left {
left: 0;
right: auto;
}
.dropdown-header {
display: block;
padding: 3px 20px;
font-size: 12px;
line-height: 1.42857143;
color: #777777;
white-space: nowrap;
}
.dropdown-backdrop {
position: fixed;
left: 0;
right: 0;
bottom: 0;
top: 0;
z-index: 990;
}
.pull-right > .dropdown-menu {
right: 0;
left: auto;
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
border-top: 0;
border-bottom: 4px dashed;
border-bottom: 4px solid \9;
content: "";
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
top: auto;
bottom: 100%;
margin-bottom: 2px;
}
@media (min-width: 541px) {
.navbar-right .dropdown-menu {
left: auto;
right: 0;
}
.navbar-right .dropdown-menu-left {
left: 0;
right: auto;
}
}
.btn-group,
.btn-group-vertical {
position: relative;
display: inline-block;
vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn {
position: relative;
float: left;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover,
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus,
.btn-group > .btn:active,
.btn-group-vertical > .btn:active,
.btn-group > .btn.active,
.btn-group-vertical > .btn.active {
z-index: 2;
}
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
margin-left: -1px;
}
.btn-toolbar {
margin-left: -5px;
}
.btn-toolbar .btn,
.btn-toolbar .btn-group,
.btn-toolbar .input-group {
float: left;
}
.btn-toolbar > .btn,
.btn-toolbar > .btn-group,
.btn-toolbar > .input-group {
margin-left: 5px;
}
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
border-radius: 0;
}
.btn-group > .btn:first-child {
margin-left: 0;
}
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.btn-group > .btn-group {
float: left;
}
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0;
}
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
outline: 0;
}
.btn-group > .btn + .dropdown-toggle {
padding-left: 8px;
padding-right: 8px;
}
.btn-group > .btn-lg + .dropdown-toggle {
padding-left: 12px;
padding-right: 12px;
}
.btn-group.open .dropdown-toggle {
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn-group.open .dropdown-toggle.btn-link {
-webkit-box-shadow: none;
box-shadow: none;
}
.btn .caret {
margin-left: 0;
}
.btn-lg .caret {
border-width: 5px 5px 0;
border-bottom-width: 0;
}
.dropup .btn-lg .caret {
border-width: 0 5px 5px;
}
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group,
.btn-group-vertical > .btn-group > .btn {
display: block;
float: none;
width: 100%;
max-width: 100%;
}
.btn-group-vertical > .btn-group > .btn {
float: none;
}
.btn-group-vertical > .btn + .btn,
.btn-group-vertical > .btn + .btn-group,
.btn-group-vertical > .btn-group + .btn,
.btn-group-vertical > .btn-group + .btn-group {
margin-top: -1px;
margin-left: 0;
}
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
border-radius: 0;
}
.btn-group-vertical > .btn:first-child:not(:last-child) {
border-top-right-radius: 2px;
border-top-left-radius: 2px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:last-child:not(:first-child) {
border-top-right-radius: 0;
border-top-left-radius: 0;
border-bottom-right-radius: 2px;
border-bottom-left-radius: 2px;
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0;
}
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.btn-group-justified {
display: table;
width: 100%;
table-layout: fixed;
border-collapse: separate;
}
.btn-group-justified > .btn,
.btn-group-justified > .btn-group {
float: none;
display: table-cell;
width: 1%;
}
.btn-group-justified > .btn-group .btn {
width: 100%;
}
.btn-group-justified > .btn-group .dropdown-menu {
left: auto;
}
[data-toggle="buttons"] > .btn input[type="radio"],
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
[data-toggle="buttons"] > .btn input[type="checkbox"],
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
position: absolute;
clip: rect(0, 0, 0, 0);
pointer-events: none;
}
.input-group {
position: relative;
display: table;
border-collapse: separate;
}
.input-group[class*="col-"] {
float: none;
padding-left: 0;
padding-right: 0;
}
.input-group .form-control {
position: relative;
z-index: 2;
float: left;
width: 100%;
margin-bottom: 0;
}
.input-group .form-control:focus {
z-index: 3;
}
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
height: 45px;
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
border-radius: 3px;
}
select.input-group-lg > .form-control,
select.input-group-lg > .input-group-addon,
select.input-group-lg > .input-group-btn > .btn {
height: 45px;
line-height: 45px;
}
textarea.input-group-lg > .form-control,
textarea.input-group-lg > .input-group-addon,
textarea.input-group-lg > .input-group-btn > .btn,
select[multiple].input-group-lg > .form-control,
select[multiple].input-group-lg > .input-group-addon,
select[multiple].input-group-lg > .input-group-btn > .btn {
height: auto;
}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
select.input-group-sm > .form-control,
select.input-group-sm > .input-group-addon,
select.input-group-sm > .input-group-btn > .btn {
height: 30px;
line-height: 30px;
}
textarea.input-group-sm > .form-control,
textarea.input-group-sm > .input-group-addon,
textarea.input-group-sm > .input-group-btn > .btn,
select[multiple].input-group-sm > .form-control,
select[multiple].input-group-sm > .input-group-addon,
select[multiple].input-group-sm > .input-group-btn > .btn {
height: auto;
}
.input-group-addon,
.input-group-btn,
.input-group .form-control {
display: table-cell;
}
.input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child),
.input-group .form-control:not(:first-child):not(:last-child) {
border-radius: 0;
}
.input-group-addon,
.input-group-btn {
width: 1%;
white-space: nowrap;
vertical-align: middle;
}
.input-group-addon {
padding: 6px 12px;
font-size: 13px;
font-weight: normal;
line-height: 1;
color: #555555;
text-align: center;
background-color: #eeeeee;
border: 1px solid #ccc;
border-radius: 2px;
}
.input-group-addon.input-sm {
padding: 5px 10px;
font-size: 12px;
border-radius: 1px;
}
.input-group-addon.input-lg {
padding: 10px 16px;
font-size: 17px;
border-radius: 3px;
}
.input-group-addon input[type="radio"],
.input-group-addon input[type="checkbox"] {
margin-top: 0;
}
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.input-group-addon:first-child {
border-right: 0;
}
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.input-group-addon:last-child {
border-left: 0;
}
.input-group-btn {
position: relative;
font-size: 0;
white-space: nowrap;
}
.input-group-btn > .btn {
position: relative;
}
.input-group-btn > .btn + .btn {
margin-left: -1px;
}
.input-group-btn > .btn:hover,
.input-group-btn > .btn:focus,
.input-group-btn > .btn:active {
z-index: 2;
}
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group {
margin-right: -1px;
}
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group {
z-index: 2;
margin-left: -1px;
}
.nav {
margin-bottom: 0;
padding-left: 0;
list-style: none;
}
.nav > li {
position: relative;
display: block;
}
.nav > li > a {
position: relative;
display: block;
padding: 10px 15px;
}
.nav > li > a:hover,
.nav > li > a:focus {
text-decoration: none;
background-color: #eeeeee;
}
.nav > li.disabled > a {
color: #777777;
}
.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
color: #777777;
text-decoration: none;
background-color: transparent;
cursor: not-allowed;
}
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
background-color: #eeeeee;
border-color: #337ab7;
}
.nav .nav-divider {
height: 1px;
margin: 8px 0;
overflow: hidden;
background-color: #e5e5e5;
}
.nav > li > a > img {
max-width: none;
}
.nav-tabs {
border-bottom: 1px solid #ddd;
}
.nav-tabs > li {
float: left;
margin-bottom: -1px;
}
.nav-tabs > li > a {
margin-right: 2px;
line-height: 1.42857143;
border: 1px solid transparent;
border-radius: 2px 2px 0 0;
}
.nav-tabs > li > a:hover {
border-color: #eeeeee #eeeeee #ddd;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
color: #555555;
background-color: #fff;
border: 1px solid #ddd;
border-bottom-color: transparent;
cursor: default;
}
.nav-tabs.nav-justified {
width: 100%;
border-bottom: 0;
}
.nav-tabs.nav-justified > li {
float: none;
}
.nav-tabs.nav-justified > li > a {
text-align: center;
margin-bottom: 5px;
}
.nav-tabs.nav-justified > .dropdown .dropdown-menu {
top: auto;
left: auto;
}
@media (min-width: 768px) {
.nav-tabs.nav-justified > li {
display: table-cell;
width: 1%;
}
.nav-tabs.nav-justified > li > a {
margin-bottom: 0;
}
}
.nav-tabs.nav-justified > li > a {
margin-right: 0;
border-radius: 2px;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
border: 1px solid #ddd;
}
@media (min-width: 768px) {
.nav-tabs.nav-justified > li > a {
border-bottom: 1px solid #ddd;
border-radius: 2px 2px 0 0;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
border-bottom-color: #fff;
}
}
.nav-pills > li {
float: left;
}
.nav-pills > li > a {
border-radius: 2px;
}
.nav-pills > li + li {
margin-left: 2px;
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
color: #fff;
background-color: #337ab7;
}
.nav-stacked > li {
float: none;
}
.nav-stacked > li + li {
margin-top: 2px;
margin-left: 0;
}
.nav-justified {
width: 100%;
}
.nav-justified > li {
float: none;
}
.nav-justified > li > a {
text-align: center;
margin-bottom: 5px;
}
.nav-justified > .dropdown .dropdown-menu {
top: auto;
left: auto;
}
@media (min-width: 768px) {
.nav-justified > li {
display: table-cell;
width: 1%;
}
.nav-justified > li > a {
margin-bottom: 0;
}
}
.nav-tabs-justified {
border-bottom: 0;
}
.nav-tabs-justified > li > a {
margin-right: 0;
border-radius: 2px;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
border: 1px solid #ddd;
}
@media (min-width: 768px) {
.nav-tabs-justified > li > a {
border-bottom: 1px solid #ddd;
border-radius: 2px 2px 0 0;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
border-bottom-color: #fff;
}
}
.tab-content > .tab-pane {
display: none;
}
.tab-content > .active {
display: block;
}
.nav-tabs .dropdown-menu {
margin-top: -1px;
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.navbar {
position: relative;
min-height: 30px;
margin-bottom: 18px;
border: 1px solid transparent;
}
@media (min-width: 541px) {
.navbar {
border-radius: 2px;
}
}
@media (min-width: 541px) {
.navbar-header {
float: left;
}
}
.navbar-collapse {
overflow-x: visible;
padding-right: 0px;
padding-left: 0px;
border-top: 1px solid transparent;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
-webkit-overflow-scrolling: touch;
}
.navbar-collapse.in {
overflow-y: auto;
}
@media (min-width: 541px) {
.navbar-collapse {
width: auto;
border-top: 0;
box-shadow: none;
}
.navbar-collapse.collapse {
display: block !important;
height: auto !important;
padding-bottom: 0;
overflow: visible !important;
}
.navbar-collapse.in {
overflow-y: visible;
}
.navbar-fixed-top .navbar-collapse,
.navbar-static-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
padding-left: 0;
padding-right: 0;
}
}
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
max-height: 340px;
}
@media (max-device-width: 540px) and (orientation: landscape) {
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
max-height: 200px;
}
}
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
margin-right: 0px;
margin-left: 0px;
}
@media (min-width: 541px) {
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
margin-right: 0;
margin-left: 0;
}
}
.navbar-static-top {
z-index: 1000;
border-width: 0 0 1px;
}
@media (min-width: 541px) {
.navbar-static-top {
border-radius: 0;
}
}
.navbar-fixed-top,
.navbar-fixed-bottom {
position: fixed;
right: 0;
left: 0;
z-index: 1030;
}
@media (min-width: 541px) {
.navbar-fixed-top,
.navbar-fixed-bottom {
border-radius: 0;
}
}
.navbar-fixed-top {
top: 0;
border-width: 0 0 1px;
}
.navbar-fixed-bottom {
bottom: 0;
margin-bottom: 0;
border-width: 1px 0 0;
}
.navbar-brand {
float: left;
padding: 6px 0px;
font-size: 17px;
line-height: 18px;
height: 30px;
}
.navbar-brand:hover,
.navbar-brand:focus {
text-decoration: none;
}
.navbar-brand > img {
display: block;
}
@media (min-width: 541px) {
.navbar > .container .navbar-brand,
.navbar > .container-fluid .navbar-brand {
margin-left: 0px;
}
}
.navbar-toggle {
position: relative;
float: right;
margin-right: 0px;
padding: 9px 10px;
margin-top: -2px;
margin-bottom: -2px;
background-color: transparent;
background-image: none;
border: 1px solid transparent;
border-radius: 2px;
}
.navbar-toggle:focus {
outline: 0;
}
.navbar-toggle .icon-bar {
display: block;
width: 22px;
height: 2px;
border-radius: 1px;
}
.navbar-toggle .icon-bar + .icon-bar {
margin-top: 4px;
}
@media (min-width: 541px) {
.navbar-toggle {
display: none;
}
}
.navbar-nav {
margin: 3px 0px;
}
.navbar-nav > li > a {
padding-top: 10px;
padding-bottom: 10px;
line-height: 18px;
}
@media (max-width: 540px) {
.navbar-nav .open .dropdown-menu {
position: static;
float: none;
width: auto;
margin-top: 0;
background-color: transparent;
border: 0;
box-shadow: none;
}
.navbar-nav .open .dropdown-menu > li > a,
.navbar-nav .open .dropdown-menu .dropdown-header {
padding: 5px 15px 5px 25px;
}
.navbar-nav .open .dropdown-menu > li > a {
line-height: 18px;
}
.navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-nav .open .dropdown-menu > li > a:focus {
background-image: none;
}
}
@media (min-width: 541px) {
.navbar-nav {
float: left;
margin: 0;
}
.navbar-nav > li {
float: left;
}
.navbar-nav > li > a {
padding-top: 6px;
padding-bottom: 6px;
}
}
.navbar-form {
margin-left: 0px;
margin-right: 0px;
padding: 10px 0px;
border-top: 1px solid transparent;
border-bottom: 1px solid transparent;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
margin-top: -1px;
margin-bottom: -1px;
}
@media (min-width: 768px) {
.navbar-form .form-group {
display: inline-block;
margin-bottom: 0;
vertical-align: middle;
}
.navbar-form .form-control {
display: inline-block;
width: auto;
vertical-align: middle;
}
.navbar-form .form-control-static {
display: inline-block;
}
.navbar-form .input-group {
display: inline-table;
vertical-align: middle;
}
.navbar-form .input-group .input-group-addon,
.navbar-form .input-group .input-group-btn,
.navbar-form .input-group .form-control {
width: auto;
}
.navbar-form .input-group > .form-control {
width: 100%;
}
.navbar-form .control-label {
margin-bottom: 0;
vertical-align: middle;
}
.navbar-form .radio,
.navbar-form .checkbox {
display: inline-block;
margin-top: 0;
margin-bottom: 0;
vertical-align: middle;
}
.navbar-form .radio label,
.navbar-form .checkbox label {
padding-left: 0;
}
.navbar-form .radio input[type="radio"],
.navbar-form .checkbox input[type="checkbox"] {
position: relative;
margin-left: 0;
}
.navbar-form .has-feedback .form-control-feedback {
top: 0;
}
}
@media (max-width: 540px) {
.navbar-form .form-group {
margin-bottom: 5px;
}
.navbar-form .form-group:last-child {
margin-bottom: 0;
}
}
@media (min-width: 541px) {
.navbar-form {
width: auto;
border: 0;
margin-left: 0;
margin-right: 0;
padding-top: 0;
padding-bottom: 0;
-webkit-box-shadow: none;
box-shadow: none;
}
}
.navbar-nav > li > .dropdown-menu {
margin-top: 0;
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
margin-bottom: 0;
border-top-right-radius: 2px;
border-top-left-radius: 2px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.navbar-btn {
margin-top: -1px;
margin-bottom: -1px;
}
.navbar-btn.btn-sm {
margin-top: 0px;
margin-bottom: 0px;
}
.navbar-btn.btn-xs {
margin-top: 4px;
margin-bottom: 4px;
}
.navbar-text {
margin-top: 6px;
margin-bottom: 6px;
}
@media (min-width: 541px) {
.navbar-text {
float: left;
margin-left: 0px;
margin-right: 0px;
}
}
@media (min-width: 541px) {
.navbar-left {
float: left !important;
float: left;
}
.navbar-right {
float: right !important;
float: right;
margin-right: 0px;
}
.navbar-right ~ .navbar-right {
margin-right: 0;
}
}
.navbar-default {
background-color: #f8f8f8;
border-color: #e7e7e7;
}
.navbar-default .navbar-brand {
color: #777;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
color: #5e5e5e;
background-color: transparent;
}
.navbar-default .navbar-text {
color: #777;
}
.navbar-default .navbar-nav > li > a {
color: #777;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
color: #333;
background-color: transparent;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
color: #555;
background-color: #e7e7e7;
}
.navbar-default .navbar-nav > .disabled > a,
.navbar-default .navbar-nav > .disabled > a:hover,
.navbar-default .navbar-nav > .disabled > a:focus {
color: #ccc;
background-color: transparent;
}
.navbar-default .navbar-toggle {
border-color: #ddd;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
background-color: #ddd;
}
.navbar-default .navbar-toggle .icon-bar {
background-color: #888;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
border-color: #e7e7e7;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
background-color: #e7e7e7;
color: #555;
}
@media (max-width: 540px) {
.navbar-default .navbar-nav .open .dropdown-menu > li > a {
color: #777;
}
.navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
color: #333;
background-color: transparent;
}
.navbar-default .navbar-nav .open .dropdown-menu > .active > a,
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
color: #555;
background-color: #e7e7e7;
}
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
color: #ccc;
background-color: transparent;
}
}
.navbar-default .navbar-link {
color: #777;
}
.navbar-default .navbar-link:hover {
color: #333;
}
.navbar-default .btn-link {
color: #777;
}
.navbar-default .btn-link:hover,
.navbar-default .btn-link:focus {
color: #333;
}
.navbar-default .btn-link[disabled]:hover,
fieldset[disabled] .navbar-default .btn-link:hover,
.navbar-default .btn-link[disabled]:focus,
fieldset[disabled] .navbar-default .btn-link:focus {
color: #ccc;
}
.navbar-inverse {
background-color: #222;
border-color: #080808;
}
.navbar-inverse .navbar-brand {
color: #9d9d9d;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
color: #fff;
background-color: transparent;
}
.navbar-inverse .navbar-text {
color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a {
color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
color: #fff;
background-color: transparent;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
color: #fff;
background-color: #080808;
}
.navbar-inverse .navbar-nav > .disabled > a,
.navbar-inverse .navbar-nav > .disabled > a:hover,
.navbar-inverse .navbar-nav > .disabled > a:focus {
color: #444;
background-color: transparent;
}
.navbar-inverse .navbar-toggle {
border-color: #333;
}
.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
background-color: #333;
}
.navbar-inverse .navbar-toggle .icon-bar {
background-color: #fff;
}
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
border-color: #101010;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
background-color: #080808;
color: #fff;
}
@media (max-width: 540px) {
.navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
border-color: #080808;
}
.navbar-inverse .navbar-nav .open .dropdown-menu .divider {
background-color: #080808;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
color: #9d9d9d;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
color: #fff;
background-color: transparent;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
color: #fff;
background-color: #080808;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
color: #444;
background-color: transparent;
}
}
.navbar-inverse .navbar-link {
color: #9d9d9d;
}
.navbar-inverse .navbar-link:hover {
color: #fff;
}
.navbar-inverse .btn-link {
color: #9d9d9d;
}
.navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link:focus {
color: #fff;
}
.navbar-inverse .btn-link[disabled]:hover,
fieldset[disabled] .navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link[disabled]:focus,
fieldset[disabled] .navbar-inverse .btn-link:focus {
color: #444;
}
.breadcrumb {
padding: 8px 15px;
margin-bottom: 18px;
list-style: none;
background-color: #f5f5f5;
border-radius: 2px;
}
.breadcrumb > li {
display: inline-block;
}
.breadcrumb > li + li:before {
content: "/\00a0";
padding: 0 5px;
color: #5e5e5e;
}
.breadcrumb > .active {
color: #777777;
}
.pagination {
display: inline-block;
padding-left: 0;
margin: 18px 0;
border-radius: 2px;
}
.pagination > li {
display: inline;
}
.pagination > li > a,
.pagination > li > span {
position: relative;
float: left;
padding: 6px 12px;
line-height: 1.42857143;
text-decoration: none;
color: #337ab7;
background-color: #fff;
border: 1px solid #ddd;
margin-left: -1px;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span {
margin-left: 0;
border-bottom-left-radius: 2px;
border-top-left-radius: 2px;
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
border-bottom-right-radius: 2px;
border-top-right-radius: 2px;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
z-index: 2;
color: #23527c;
background-color: #eeeeee;
border-color: #ddd;
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
z-index: 3;
color: #fff;
background-color: #337ab7;
border-color: #337ab7;
cursor: default;
}
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
color: #777777;
background-color: #fff;
border-color: #ddd;
cursor: not-allowed;
}
.pagination-lg > li > a,
.pagination-lg > li > span {
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
}
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
border-bottom-left-radius: 3px;
border-top-left-radius: 3px;
}
.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
border-bottom-right-radius: 3px;
border-top-right-radius: 3px;
}
.pagination-sm > li > a,
.pagination-sm > li > span {
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
}
.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
border-bottom-left-radius: 1px;
border-top-left-radius: 1px;
}
.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
border-bottom-right-radius: 1px;
border-top-right-radius: 1px;
}
.pager {
padding-left: 0;
margin: 18px 0;
list-style: none;
text-align: center;
}
.pager li {
display: inline;
}
.pager li > a,
.pager li > span {
display: inline-block;
padding: 5px 14px;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 15px;
}
.pager li > a:hover,
.pager li > a:focus {
text-decoration: none;
background-color: #eeeeee;
}
.pager .next > a,
.pager .next > span {
float: right;
}
.pager .previous > a,
.pager .previous > span {
float: left;
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
color: #777777;
background-color: #fff;
cursor: not-allowed;
}
.label {
display: inline;
padding: .2em .6em .3em;
font-size: 75%;
font-weight: bold;
line-height: 1;
color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
}
a.label:hover,
a.label:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
.label:empty {
display: none;
}
.btn .label {
position: relative;
top: -1px;
}
.label-default {
background-color: #777777;
}
.label-default[href]:hover,
.label-default[href]:focus {
background-color: #5e5e5e;
}
.label-primary {
background-color: #337ab7;
}
.label-primary[href]:hover,
.label-primary[href]:focus {
background-color: #286090;
}
.label-success {
background-color: #5cb85c;
}
.label-success[href]:hover,
.label-success[href]:focus {
background-color: #449d44;
}
.label-info {
background-color: #5bc0de;
}
.label-info[href]:hover,
.label-info[href]:focus {
background-color: #31b0d5;
}
.label-warning {
background-color: #f0ad4e;
}
.label-warning[href]:hover,
.label-warning[href]:focus {
background-color: #ec971f;
}
.label-danger {
background-color: #d9534f;
}
.label-danger[href]:hover,
.label-danger[href]:focus {
background-color: #c9302c;
}
.badge {
display: inline-block;
min-width: 10px;
padding: 3px 7px;
font-size: 12px;
font-weight: bold;
color: #fff;
line-height: 1;
vertical-align: middle;
white-space: nowrap;
text-align: center;
background-color: #777777;
border-radius: 10px;
}
.badge:empty {
display: none;
}
.btn .badge {
position: relative;
top: -1px;
}
.btn-xs .badge,
.btn-group-xs > .btn .badge {
top: 0;
padding: 1px 5px;
}
a.badge:hover,
a.badge:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
color: #337ab7;
background-color: #fff;
}
.list-group-item > .badge {
float: right;
}
.list-group-item > .badge + .badge {
margin-right: 5px;
}
.nav-pills > li > a > .badge {
margin-left: 3px;
}
.jumbotron {
padding-top: 30px;
padding-bottom: 30px;
margin-bottom: 30px;
color: inherit;
background-color: #eeeeee;
}
.jumbotron h1,
.jumbotron .h1 {
color: inherit;
}
.jumbotron p {
margin-bottom: 15px;
font-size: 20px;
font-weight: 200;
}
.jumbotron > hr {
border-top-color: #d5d5d5;
}
.container .jumbotron,
.container-fluid .jumbotron {
border-radius: 3px;
padding-left: 0px;
padding-right: 0px;
}
.jumbotron .container {
max-width: 100%;
}
@media screen and (min-width: 768px) {
.jumbotron {
padding-top: 48px;
padding-bottom: 48px;
}
.container .jumbotron,
.container-fluid .jumbotron {
padding-left: 60px;
padding-right: 60px;
}
.jumbotron h1,
.jumbotron .h1 {
font-size: 59px;
}
}
.thumbnail {
display: block;
padding: 4px;
margin-bottom: 18px;
line-height: 1.42857143;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 2px;
-webkit-transition: border 0.2s ease-in-out;
-o-transition: border 0.2s ease-in-out;
transition: border 0.2s ease-in-out;
}
.thumbnail > img,
.thumbnail a > img {
margin-left: auto;
margin-right: auto;
}
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
border-color: #337ab7;
}
.thumbnail .caption {
padding: 9px;
color: #000;
}
.alert {
padding: 15px;
margin-bottom: 18px;
border: 1px solid transparent;
border-radius: 2px;
}
.alert h4 {
margin-top: 0;
color: inherit;
}
.alert .alert-link {
font-weight: bold;
}
.alert > p,
.alert > ul {
margin-bottom: 0;
}
.alert > p + p {
margin-top: 5px;
}
.alert-dismissable,
.alert-dismissible {
padding-right: 35px;
}
.alert-dismissable .close,
.alert-dismissible .close {
position: relative;
top: -2px;
right: -21px;
color: inherit;
}
.alert-success {
background-color: #dff0d8;
border-color: #d6e9c6;
color: #3c763d;
}
.alert-success hr {
border-top-color: #c9e2b3;
}
.alert-success .alert-link {
color: #2b542c;
}
.alert-info {
background-color: #d9edf7;
border-color: #bce8f1;
color: #31708f;
}
.alert-info hr {
border-top-color: #a6e1ec;
}
.alert-info .alert-link {
color: #245269;
}
.alert-warning {
background-color: #fcf8e3;
border-color: #faebcc;
color: #8a6d3b;
}
.alert-warning hr {
border-top-color: #f7e1b5;
}
.alert-warning .alert-link {
color: #66512c;
}
.alert-danger {
background-color: #f2dede;
border-color: #ebccd1;
color: #a94442;
}
.alert-danger hr {
border-top-color: #e4b9c0;
}
.alert-danger .alert-link {
color: #843534;
}
@-webkit-keyframes progress-bar-stripes {
from {
background-position: 40px 0;
}
to {
background-position: 0 0;
}
}
@keyframes progress-bar-stripes {
from {
background-position: 40px 0;
}
to {
background-position: 0 0;
}
}
.progress {
overflow: hidden;
height: 18px;
margin-bottom: 18px;
background-color: #f5f5f5;
border-radius: 2px;
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
.progress-bar {
float: left;
width: 0%;
height: 100%;
font-size: 12px;
line-height: 18px;
color: #fff;
text-align: center;
background-color: #337ab7;
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-webkit-transition: width 0.6s ease;
-o-transition: width 0.6s ease;
transition: width 0.6s ease;
}
.progress-striped .progress-bar,
.progress-bar-striped {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-size: 40px 40px;
}
.progress.active .progress-bar,
.progress-bar.active {
-webkit-animation: progress-bar-stripes 2s linear infinite;
-o-animation: progress-bar-stripes 2s linear infinite;
animation: progress-bar-stripes 2s linear infinite;
}
.progress-bar-success {
background-color: #5cb85c;
}
.progress-striped .progress-bar-success {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-info {
background-color: #5bc0de;
}
.progress-striped .progress-bar-info {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-warning {
background-color: #f0ad4e;
}
.progress-striped .progress-bar-warning {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-danger {
background-color: #d9534f;
}
.progress-striped .progress-bar-danger {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.media {
margin-top: 15px;
}
.media:first-child {
margin-top: 0;
}
.media,
.media-body {
zoom: 1;
overflow: hidden;
}
.media-body {
width: 10000px;
}
.media-object {
display: block;
}
.media-object.img-thumbnail {
max-width: none;
}
.media-right,
.media > .pull-right {
padding-left: 10px;
}
.media-left,
.media > .pull-left {
padding-right: 10px;
}
.media-left,
.media-right,
.media-body {
display: table-cell;
vertical-align: top;
}
.media-middle {
vertical-align: middle;
}
.media-bottom {
vertical-align: bottom;
}
.media-heading {
margin-top: 0;
margin-bottom: 5px;
}
.media-list {
padding-left: 0;
list-style: none;
}
.list-group {
margin-bottom: 20px;
padding-left: 0;
}
.list-group-item {
position: relative;
display: block;
padding: 10px 15px;
margin-bottom: -1px;
background-color: #fff;
border: 1px solid #ddd;
}
.list-group-item:first-child {
border-top-right-radius: 2px;
border-top-left-radius: 2px;
}
.list-group-item:last-child {
margin-bottom: 0;
border-bottom-right-radius: 2px;
border-bottom-left-radius: 2px;
}
a.list-group-item,
button.list-group-item {
color: #555;
}
a.list-group-item .list-group-item-heading,
button.list-group-item .list-group-item-heading {
color: #333;
}
a.list-group-item:hover,
button.list-group-item:hover,
a.list-group-item:focus,
button.list-group-item:focus {
text-decoration: none;
color: #555;
background-color: #f5f5f5;
}
button.list-group-item {
width: 100%;
text-align: left;
}
.list-group-item.disabled,
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
background-color: #eeeeee;
color: #777777;
cursor: not-allowed;
}
.list-group-item.disabled .list-group-item-heading,
.list-group-item.disabled:hover .list-group-item-heading,
.list-group-item.disabled:focus .list-group-item-heading {
color: inherit;
}
.list-group-item.disabled .list-group-item-text,
.list-group-item.disabled:hover .list-group-item-text,
.list-group-item.disabled:focus .list-group-item-text {
color: #777777;
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
z-index: 2;
color: #fff;
background-color: #337ab7;
border-color: #337ab7;
}
.list-group-item.active .list-group-item-heading,
.list-group-item.active:hover .list-group-item-heading,
.list-group-item.active:focus .list-group-item-heading,
.list-group-item.active .list-group-item-heading > small,
.list-group-item.active:hover .list-group-item-heading > small,
.list-group-item.active:focus .list-group-item-heading > small,
.list-group-item.active .list-group-item-heading > .small,
.list-group-item.active:hover .list-group-item-heading > .small,
.list-group-item.active:focus .list-group-item-heading > .small {
color: inherit;
}
.list-group-item.active .list-group-item-text,
.list-group-item.active:hover .list-group-item-text,
.list-group-item.active:focus .list-group-item-text {
color: #c7ddef;
}
.list-group-item-success {
color: #3c763d;
background-color: #dff0d8;
}
a.list-group-item-success,
button.list-group-item-success {
color: #3c763d;
}
a.list-group-item-success .list-group-item-heading,
button.list-group-item-success .list-group-item-heading {
color: inherit;
}
a.list-group-item-success:hover,
button.list-group-item-success:hover,
a.list-group-item-success:focus,
button.list-group-item-success:focus {
color: #3c763d;
background-color: #d0e9c6;
}
a.list-group-item-success.active,
button.list-group-item-success.active,
a.list-group-item-success.active:hover,
button.list-group-item-success.active:hover,
a.list-group-item-success.active:focus,
button.list-group-item-success.active:focus {
color: #fff;
background-color: #3c763d;
border-color: #3c763d;
}
.list-group-item-info {
color: #31708f;
background-color: #d9edf7;
}
a.list-group-item-info,
button.list-group-item-info {
color: #31708f;
}
a.list-group-item-info .list-group-item-heading,
button.list-group-item-info .list-group-item-heading {
color: inherit;
}
a.list-group-item-info:hover,
button.list-group-item-info:hover,
a.list-group-item-info:focus,
button.list-group-item-info:focus {
color: #31708f;
background-color: #c4e3f3;
}
a.list-group-item-info.active,
button.list-group-item-info.active,
a.list-group-item-info.active:hover,
button.list-group-item-info.active:hover,
a.list-group-item-info.active:focus,
button.list-group-item-info.active:focus {
color: #fff;
background-color: #31708f;
border-color: #31708f;
}
.list-group-item-warning {
color: #8a6d3b;
background-color: #fcf8e3;
}
a.list-group-item-warning,
button.list-group-item-warning {
color: #8a6d3b;
}
a.list-group-item-warning .list-group-item-heading,
button.list-group-item-warning .list-group-item-heading {
color: inherit;
}
a.list-group-item-warning:hover,
button.list-group-item-warning:hover,
a.list-group-item-warning:focus,
button.list-group-item-warning:focus {
color: #8a6d3b;
background-color: #faf2cc;
}
a.list-group-item-warning.active,
button.list-group-item-warning.active,
a.list-group-item-warning.active:hover,
button.list-group-item-warning.active:hover,
a.list-group-item-warning.active:focus,
button.list-group-item-warning.active:focus {
color: #fff;
background-color: #8a6d3b;
border-color: #8a6d3b;
}
.list-group-item-danger {
color: #a94442;
background-color: #f2dede;
}
a.list-group-item-danger,
button.list-group-item-danger {
color: #a94442;
}
a.list-group-item-danger .list-group-item-heading,
button.list-group-item-danger .list-group-item-heading {
color: inherit;
}
a.list-group-item-danger:hover,
button.list-group-item-danger:hover,
a.list-group-item-danger:focus,
button.list-group-item-danger:focus {
color: #a94442;
background-color: #ebcccc;
}
a.list-group-item-danger.active,
button.list-group-item-danger.active,
a.list-group-item-danger.active:hover,
button.list-group-item-danger.active:hover,
a.list-group-item-danger.active:focus,
button.list-group-item-danger.active:focus {
color: #fff;
background-color: #a94442;
border-color: #a94442;
}
.list-group-item-heading {
margin-top: 0;
margin-bottom: 5px;
}
.list-group-item-text {
margin-bottom: 0;
line-height: 1.3;
}
.panel {
margin-bottom: 18px;
background-color: #fff;
border: 1px solid transparent;
border-radius: 2px;
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}
.panel-body {
padding: 15px;
}
.panel-heading {
padding: 10px 15px;
border-bottom: 1px solid transparent;
border-top-right-radius: 1px;
border-top-left-radius: 1px;
}
.panel-heading > .dropdown .dropdown-toggle {
color: inherit;
}
.panel-title {
margin-top: 0;
margin-bottom: 0;
font-size: 15px;
color: inherit;
}
.panel-title > a,
.panel-title > small,
.panel-title > .small,
.panel-title > small > a,
.panel-title > .small > a {
color: inherit;
}
.panel-footer {
padding: 10px 15px;
background-color: #f5f5f5;
border-top: 1px solid #ddd;
border-bottom-right-radius: 1px;
border-bottom-left-radius: 1px;
}
.panel > .list-group,
.panel > .panel-collapse > .list-group {
margin-bottom: 0;
}
.panel > .list-group .list-group-item,
.panel > .panel-collapse > .list-group .list-group-item {
border-width: 1px 0;
border-radius: 0;
}
.panel > .list-group:first-child .list-group-item:first-child,
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
border-top: 0;
border-top-right-radius: 1px;
border-top-left-radius: 1px;
}
.panel > .list-group:last-child .list-group-item:last-child,
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
border-bottom: 0;
border-bottom-right-radius: 1px;
border-bottom-left-radius: 1px;
}
.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.panel-heading + .list-group .list-group-item:first-child {
border-top-width: 0;
}
.list-group + .panel-footer {
border-top-width: 0;
}
.panel > .table,
.panel > .table-responsive > .table,
.panel > .panel-collapse > .table {
margin-bottom: 0;
}
.panel > .table caption,
.panel > .table-responsive > .table caption,
.panel > .panel-collapse > .table caption {
padding-left: 15px;
padding-right: 15px;
}
.panel > .table:first-child,
.panel > .table-responsive:first-child > .table:first-child {
border-top-right-radius: 1px;
border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
border-top-left-radius: 1px;
border-top-right-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
border-top-right-radius: 1px;
}
.panel > .table:last-child,
.panel > .table-responsive:last-child > .table:last-child {
border-bottom-right-radius: 1px;
border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
border-bottom-left-radius: 1px;
border-bottom-right-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
border-bottom-right-radius: 1px;
}
.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive,
.panel > .table + .panel-body,
.panel > .table-responsive + .panel-body {
border-top: 1px solid #ddd;
}
.panel > .table > tbody:first-child > tr:first-child th,
.panel > .table > tbody:first-child > tr:first-child td {
border-top: 0;
}
.panel > .table-bordered,
.panel > .table-responsive > .table-bordered {
border: 0;
}
.panel > .table-bordered > thead > tr > th:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
.panel > .table-bordered > tbody > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
.panel > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-bordered > thead > tr > td:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
.panel > .table-bordered > tbody > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
.panel > .table-bordered > tfoot > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
border-left: 0;
}
.panel > .table-bordered > thead > tr > th:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
.panel > .table-bordered > tbody > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
.panel > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-bordered > thead > tr > td:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
.panel > .table-bordered > tbody > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
.panel > .table-bordered > tfoot > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
border-right: 0;
}
.panel > .table-bordered > thead > tr:first-child > td,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
.panel > .table-bordered > tbody > tr:first-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
.panel > .table-bordered > thead > tr:first-child > th,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
.panel > .table-bordered > tbody > tr:first-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
border-bottom: 0;
}
.panel > .table-bordered > tbody > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
.panel > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-bordered > tbody > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
.panel > .table-bordered > tfoot > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
border-bottom: 0;
}
.panel > .table-responsive {
border: 0;
margin-bottom: 0;
}
.panel-group {
margin-bottom: 18px;
}
.panel-group .panel {
margin-bottom: 0;
border-radius: 2px;
}
.panel-group .panel + .panel {
margin-top: 5px;
}
.panel-group .panel-heading {
border-bottom: 0;
}
.panel-group .panel-heading + .panel-collapse > .panel-body,
.panel-group .panel-heading + .panel-collapse > .list-group {
border-top: 1px solid #ddd;
}
.panel-group .panel-footer {
border-top: 0;
}
.panel-group .panel-footer + .panel-collapse .panel-body {
border-bottom: 1px solid #ddd;
}
.panel-default {
border-color: #ddd;
}
.panel-default > .panel-heading {
color: #333333;
background-color: #f5f5f5;
border-color: #ddd;
}
.panel-default > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #ddd;
}
.panel-default > .panel-heading .badge {
color: #f5f5f5;
background-color: #333333;
}
.panel-default > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #ddd;
}
.panel-primary {
border-color: #337ab7;
}
.panel-primary > .panel-heading {
color: #fff;
background-color: #337ab7;
border-color: #337ab7;
}
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #337ab7;
}
.panel-primary > .panel-heading .badge {
color: #337ab7;
background-color: #fff;
}
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #337ab7;
}
.panel-success {
border-color: #d6e9c6;
}
.panel-success > .panel-heading {
color: #3c763d;
background-color: #dff0d8;
border-color: #d6e9c6;
}
.panel-success > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #d6e9c6;
}
.panel-success > .panel-heading .badge {
color: #dff0d8;
background-color: #3c763d;
}
.panel-success > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #d6e9c6;
}
.panel-info {
border-color: #bce8f1;
}
.panel-info > .panel-heading {
color: #31708f;
background-color: #d9edf7;
border-color: #bce8f1;
}
.panel-info > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #bce8f1;
}
.panel-info > .panel-heading .badge {
color: #d9edf7;
background-color: #31708f;
}
.panel-info > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #bce8f1;
}
.panel-warning {
border-color: #faebcc;
}
.panel-warning > .panel-heading {
color: #8a6d3b;
background-color: #fcf8e3;
border-color: #faebcc;
}
.panel-warning > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #faebcc;
}
.panel-warning > .panel-heading .badge {
color: #fcf8e3;
background-color: #8a6d3b;
}
.panel-warning > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #faebcc;
}
.panel-danger {
border-color: #ebccd1;
}
.panel-danger > .panel-heading {
color: #a94442;
background-color: #f2dede;
border-color: #ebccd1;
}
.panel-danger > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #ebccd1;
}
.panel-danger > .panel-heading .badge {
color: #f2dede;
background-color: #a94442;
}
.panel-danger > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #ebccd1;
}
.embed-responsive {
position: relative;
display: block;
height: 0;
padding: 0;
overflow: hidden;
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
position: absolute;
top: 0;
left: 0;
bottom: 0;
height: 100%;
width: 100%;
border: 0;
}
.embed-responsive-16by9 {
padding-bottom: 56.25%;
}
.embed-responsive-4by3 {
padding-bottom: 75%;
}
.well {
min-height: 20px;
padding: 19px;
margin-bottom: 20px;
background-color: #f5f5f5;
border: 1px solid #e3e3e3;
border-radius: 2px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}
.well blockquote {
border-color: #ddd;
border-color: rgba(0, 0, 0, 0.15);
}
.well-lg {
padding: 24px;
border-radius: 3px;
}
.well-sm {
padding: 9px;
border-radius: 1px;
}
.close {
float: right;
font-size: 19.5px;
font-weight: bold;
line-height: 1;
color: #000;
text-shadow: 0 1px 0 #fff;
opacity: 0.2;
filter: alpha(opacity=20);
}
.close:hover,
.close:focus {
color: #000;
text-decoration: none;
cursor: pointer;
opacity: 0.5;
filter: alpha(opacity=50);
}
button.close {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
}
.modal-open {
overflow: hidden;
}
.modal {
display: none;
overflow: hidden;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1050;
-webkit-overflow-scrolling: touch;
outline: 0;
}
.modal.fade .modal-dialog {
-webkit-transform: translate(0, -25%);
-ms-transform: translate(0, -25%);
-o-transform: translate(0, -25%);
transform: translate(0, -25%);
-webkit-transition: -webkit-transform 0.3s ease-out;
-moz-transition: -moz-transform 0.3s ease-out;
-o-transition: -o-transform 0.3s ease-out;
transition: transform 0.3s ease-out;
}
.modal.in .modal-dialog {
-webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0);
-o-transform: translate(0, 0);
transform: translate(0, 0);
}
.modal-open .modal {
overflow-x: hidden;
overflow-y: auto;
}
.modal-dialog {
position: relative;
width: auto;
margin: 10px;
}
.modal-content {
position: relative;
background-color: #fff;
border: 1px solid #999;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 3px;
-webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
background-clip: padding-box;
outline: 0;
}
.modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
background-color: #000;
}
.modal-backdrop.fade {
opacity: 0;
filter: alpha(opacity=0);
}
.modal-backdrop.in {
opacity: 0.5;
filter: alpha(opacity=50);
}
.modal-header {
padding: 15px;
border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
margin-top: -2px;
}
.modal-title {
margin: 0;
line-height: 1.42857143;
}
.modal-body {
position: relative;
padding: 15px;
}
.modal-footer {
padding: 15px;
text-align: right;
border-top: 1px solid #e5e5e5;
}
.modal-footer .btn + .btn {
margin-left: 5px;
margin-bottom: 0;
}
.modal-footer .btn-group .btn + .btn {
margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
margin-left: 0;
}
.modal-scrollbar-measure {
position: absolute;
top: -9999px;
width: 50px;
height: 50px;
overflow: scroll;
}
@media (min-width: 768px) {
.modal-dialog {
width: 600px;
margin: 30px auto;
}
.modal-content {
-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
}
.modal-sm {
width: 300px;
}
}
@media (min-width: 992px) {
.modal-lg {
width: 900px;
}
}
.tooltip {
position: absolute;
z-index: 1070;
display: block;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-style: normal;
font-weight: normal;
letter-spacing: normal;
line-break: auto;
line-height: 1.42857143;
text-align: left;
text-align: start;
text-decoration: none;
text-shadow: none;
text-transform: none;
white-space: normal;
word-break: normal;
word-spacing: normal;
word-wrap: normal;
font-size: 12px;
opacity: 0;
filter: alpha(opacity=0);
}
.tooltip.in {
opacity: 0.9;
filter: alpha(opacity=90);
}
.tooltip.top {
margin-top: -3px;
padding: 5px 0;
}
.tooltip.right {
margin-left: 3px;
padding: 0 5px;
}
.tooltip.bottom {
margin-top: 3px;
padding: 5px 0;
}
.tooltip.left {
margin-left: -3px;
padding: 0 5px;
}
.tooltip-inner {
max-width: 200px;
padding: 3px 8px;
color: #fff;
text-align: center;
background-color: #000;
border-radius: 2px;
}
.tooltip-arrow {
position: absolute;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.tooltip.top .tooltip-arrow {
bottom: 0;
left: 50%;
margin-left: -5px;
border-width: 5px 5px 0;
border-top-color: #000;
}
.tooltip.top-left .tooltip-arrow {
bottom: 0;
right: 5px;
margin-bottom: -5px;
border-width: 5px 5px 0;
border-top-color: #000;
}
.tooltip.top-right .tooltip-arrow {
bottom: 0;
left: 5px;
margin-bottom: -5px;
border-width: 5px 5px 0;
border-top-color: #000;
}
.tooltip.right .tooltip-arrow {
top: 50%;
left: 0;
margin-top: -5px;
border-width: 5px 5px 5px 0;
border-right-color: #000;
}
.tooltip.left .tooltip-arrow {
top: 50%;
right: 0;
margin-top: -5px;
border-width: 5px 0 5px 5px;
border-left-color: #000;
}
.tooltip.bottom .tooltip-arrow {
top: 0;
left: 50%;
margin-left: -5px;
border-width: 0 5px 5px;
border-bottom-color: #000;
}
.tooltip.bottom-left .tooltip-arrow {
top: 0;
right: 5px;
margin-top: -5px;
border-width: 0 5px 5px;
border-bottom-color: #000;
}
.tooltip.bottom-right .tooltip-arrow {
top: 0;
left: 5px;
margin-top: -5px;
border-width: 0 5px 5px;
border-bottom-color: #000;
}
.popover {
position: absolute;
top: 0;
left: 0;
z-index: 1060;
display: none;
max-width: 276px;
padding: 1px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-style: normal;
font-weight: normal;
letter-spacing: normal;
line-break: auto;
line-height: 1.42857143;
text-align: left;
text-align: start;
text-decoration: none;
text-shadow: none;
text-transform: none;
white-space: normal;
word-break: normal;
word-spacing: normal;
word-wrap: normal;
font-size: 13px;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ccc;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 3px;
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.popover.top {
margin-top: -10px;
}
.popover.right {
margin-left: 10px;
}
.popover.bottom {
margin-top: 10px;
}
.popover.left {
margin-left: -10px;
}
.popover-title {
margin: 0;
padding: 8px 14px;
font-size: 13px;
background-color: #f7f7f7;
border-bottom: 1px solid #ebebeb;
border-radius: 2px 2px 0 0;
}
.popover-content {
padding: 9px 14px;
}
.popover > .arrow,
.popover > .arrow:after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.popover > .arrow {
border-width: 11px;
}
.popover > .arrow:after {
border-width: 10px;
content: "";
}
.popover.top > .arrow {
left: 50%;
margin-left: -11px;
border-bottom-width: 0;
border-top-color: #999999;
border-top-color: rgba(0, 0, 0, 0.25);
bottom: -11px;
}
.popover.top > .arrow:after {
content: " ";
bottom: 1px;
margin-left: -10px;
border-bottom-width: 0;
border-top-color: #fff;
}
.popover.right > .arrow {
top: 50%;
left: -11px;
margin-top: -11px;
border-left-width: 0;
border-right-color: #999999;
border-right-color: rgba(0, 0, 0, 0.25);
}
.popover.right > .arrow:after {
content: " ";
left: 1px;
bottom: -10px;
border-left-width: 0;
border-right-color: #fff;
}
.popover.bottom > .arrow {
left: 50%;
margin-left: -11px;
border-top-width: 0;
border-bottom-color: #999999;
border-bottom-color: rgba(0, 0, 0, 0.25);
top: -11px;
}
.popover.bottom > .arrow:after {
content: " ";
top: 1px;
margin-left: -10px;
border-top-width: 0;
border-bottom-color: #fff;
}
.popover.left > .arrow {
top: 50%;
right: -11px;
margin-top: -11px;
border-right-width: 0;
border-left-color: #999999;
border-left-color: rgba(0, 0, 0, 0.25);
}
.popover.left > .arrow:after {
content: " ";
right: 1px;
border-right-width: 0;
border-left-color: #fff;
bottom: -10px;
}
.carousel {
position: relative;
}
.carousel-inner {
position: relative;
overflow: hidden;
width: 100%;
}
.carousel-inner > .item {
display: none;
position: relative;
-webkit-transition: 0.6s ease-in-out left;
-o-transition: 0.6s ease-in-out left;
transition: 0.6s ease-in-out left;
}
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
line-height: 1;
}
@media all and (transform-3d), (-webkit-transform-3d) {
.carousel-inner > .item {
-webkit-transition: -webkit-transform 0.6s ease-in-out;
-moz-transition: -moz-transform 0.6s ease-in-out;
-o-transition: -o-transform 0.6s ease-in-out;
transition: transform 0.6s ease-in-out;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-perspective: 1000px;
-moz-perspective: 1000px;
perspective: 1000px;
}
.carousel-inner > .item.next,
.carousel-inner > .item.active.right {
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
left: 0;
}
.carousel-inner > .item.prev,
.carousel-inner > .item.active.left {
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0);
left: 0;
}
.carousel-inner > .item.next.left,
.carousel-inner > .item.prev.right,
.carousel-inner > .item.active {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
left: 0;
}
}
.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
display: block;
}
.carousel-inner > .active {
left: 0;
}
.carousel-inner > .next,
.carousel-inner > .prev {
position: absolute;
top: 0;
width: 100%;
}
.carousel-inner > .next {
left: 100%;
}
.carousel-inner > .prev {
left: -100%;
}
.carousel-inner > .next.left,
.carousel-inner > .prev.right {
left: 0;
}
.carousel-inner > .active.left {
left: -100%;
}
.carousel-inner > .active.right {
left: 100%;
}
.carousel-control {
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: 15%;
opacity: 0.5;
filter: alpha(opacity=50);
font-size: 20px;
color: #fff;
text-align: center;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
background-color: rgba(0, 0, 0, 0);
}
.carousel-control.left {
background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
}
.carousel-control.right {
left: auto;
right: 0;
background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
}
.carousel-control:hover,
.carousel-control:focus {
outline: 0;
color: #fff;
text-decoration: none;
opacity: 0.9;
filter: alpha(opacity=90);
}
.carousel-control .icon-prev,
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right {
position: absolute;
top: 50%;
margin-top: -10px;
z-index: 5;
display: inline-block;
}
.carousel-control .icon-prev,
.carousel-control .glyphicon-chevron-left {
left: 50%;
margin-left: -10px;
}
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-right {
right: 50%;
margin-right: -10px;
}
.carousel-control .icon-prev,
.carousel-control .icon-next {
width: 20px;
height: 20px;
line-height: 1;
font-family: serif;
}
.carousel-control .icon-prev:before {
content: '\2039';
}
.carousel-control .icon-next:before {
content: '\203a';
}
.carousel-indicators {
position: absolute;
bottom: 10px;
left: 50%;
z-index: 15;
width: 60%;
margin-left: -30%;
padding-left: 0;
list-style: none;
text-align: center;
}
.carousel-indicators li {
display: inline-block;
width: 10px;
height: 10px;
margin: 1px;
text-indent: -999px;
border: 1px solid #fff;
border-radius: 10px;
cursor: pointer;
background-color: #000 \9;
background-color: rgba(0, 0, 0, 0);
}
.carousel-indicators .active {
margin: 0;
width: 12px;
height: 12px;
background-color: #fff;
}
.carousel-caption {
position: absolute;
left: 15%;
right: 15%;
bottom: 20px;
z-index: 10;
padding-top: 20px;
padding-bottom: 20px;
color: #fff;
text-align: center;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.carousel-caption .btn {
text-shadow: none;
}
@media screen and (min-width: 768px) {
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right,
.carousel-control .icon-prev,
.carousel-control .icon-next {
width: 30px;
height: 30px;
margin-top: -10px;
font-size: 30px;
}
.carousel-control .glyphicon-chevron-left,
.carousel-control .icon-prev {
margin-left: -10px;
}
.carousel-control .glyphicon-chevron-right,
.carousel-control .icon-next {
margin-right: -10px;
}
.carousel-caption {
left: 20%;
right: 20%;
padding-bottom: 30px;
}
.carousel-indicators {
bottom: 20px;
}
}
.clearfix:before,
.clearfix:after,
.dl-horizontal dd:before,
.dl-horizontal dd:after,
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.row:before,
.row:after,
.form-horizontal .form-group:before,
.form-horizontal .form-group:after,
.btn-toolbar:before,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:before,
.btn-group-vertical > .btn-group:after,
.nav:before,
.nav:after,
.navbar:before,
.navbar:after,
.navbar-header:before,
.navbar-header:after,
.navbar-collapse:before,
.navbar-collapse:after,
.pager:before,
.pager:after,
.panel-body:before,
.panel-body:after,
.modal-header:before,
.modal-header:after,
.modal-footer:before,
.modal-footer:after,
.item_buttons:before,
.item_buttons:after {
content: " ";
display: table;
}
.clearfix:after,
.dl-horizontal dd:after,
.container:after,
.container-fluid:after,
.row:after,
.form-horizontal .form-group:after,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:after,
.nav:after,
.navbar:after,
.navbar-header:after,
.navbar-collapse:after,
.pager:after,
.panel-body:after,
.modal-header:after,
.modal-footer:after,
.item_buttons:after {
clear: both;
}
.center-block {
display: block;
margin-left: auto;
margin-right: auto;
}
.pull-right {
float: right !important;
}
.pull-left {
float: left !important;
}
.hide {
display: none !important;
}
.show {
display: block !important;
}
.invisible {
visibility: hidden;
}
.text-hide {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
.hidden {
display: none !important;
}
.affix {
position: fixed;
}
@-ms-viewport {
width: device-width;
}
.visible-xs,
.visible-sm,
.visible-md,
.visible-lg {
display: none !important;
}
.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
.visible-sm-block,
.visible-sm-inline,
.visible-sm-inline-block,
.visible-md-block,
.visible-md-inline,
.visible-md-inline-block,
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block {
display: none !important;
}
@media (max-width: 767px) {
.visible-xs {
display: block !important;
}
table.visible-xs {
display: table !important;
}
tr.visible-xs {
display: table-row !important;
}
th.visible-xs,
td.visible-xs {
display: table-cell !important;
}
}
@media (max-width: 767px) {
.visible-xs-block {
display: block !important;
}
}
@media (max-width: 767px) {
.visible-xs-inline {
display: inline !important;
}
}
@media (max-width: 767px) {
.visible-xs-inline-block {
display: inline-block !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm {
display: block !important;
}
table.visible-sm {
display: table !important;
}
tr.visible-sm {
display: table-row !important;
}
th.visible-sm,
td.visible-sm {
display: table-cell !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-block {
display: block !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-inline {
display: inline !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-inline-block {
display: inline-block !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md {
display: block !important;
}
table.visible-md {
display: table !important;
}
tr.visible-md {
display: table-row !important;
}
th.visible-md,
td.visible-md {
display: table-cell !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-block {
display: block !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-inline {
display: inline !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-inline-block {
display: inline-block !important;
}
}
@media (min-width: 1200px) {
.visible-lg {
display: block !important;
}
table.visible-lg {
display: table !important;
}
tr.visible-lg {
display: table-row !important;
}
th.visible-lg,
td.visible-lg {
display: table-cell !important;
}
}
@media (min-width: 1200px) {
.visible-lg-block {
display: block !important;
}
}
@media (min-width: 1200px) {
.visible-lg-inline {
display: inline !important;
}
}
@media (min-width: 1200px) {
.visible-lg-inline-block {
display: inline-block !important;
}
}
@media (max-width: 767px) {
.hidden-xs {
display: none !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.hidden-sm {
display: none !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.hidden-md {
display: none !important;
}
}
@media (min-width: 1200px) {
.hidden-lg {
display: none !important;
}
}
.visible-print {
display: none !important;
}
@media print {
.visible-print {
display: block !important;
}
table.visible-print {
display: table !important;
}
tr.visible-print {
display: table-row !important;
}
th.visible-print,
td.visible-print {
display: table-cell !important;
}
}
.visible-print-block {
display: none !important;
}
@media print {
.visible-print-block {
display: block !important;
}
}
.visible-print-inline {
display: none !important;
}
@media print {
.visible-print-inline {
display: inline !important;
}
}
.visible-print-inline-block {
display: none !important;
}
@media print {
.visible-print-inline-block {
display: inline-block !important;
}
}
@media print {
.hidden-print {
display: none !important;
}
}
/*!
*
* Font Awesome
*
*/
/*!
* Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
/* FONT PATH
* -------------------------- */
@font-face {
font-family: 'FontAwesome';
src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0');
src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular') format('svg');
font-weight: normal;
font-style: normal;
}
.fa {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
font-size: 1.33333333em;
line-height: 0.75em;
vertical-align: -15%;
}
.fa-2x {
font-size: 2em;
}
.fa-3x {
font-size: 3em;
}
.fa-4x {
font-size: 4em;
}
.fa-5x {
font-size: 5em;
}
.fa-fw {
width: 1.28571429em;
text-align: center;
}
.fa-ul {
padding-left: 0;
margin-left: 2.14285714em;
list-style-type: none;
}
.fa-ul > li {
position: relative;
}
.fa-li {
position: absolute;
left: -2.14285714em;
width: 2.14285714em;
top: 0.14285714em;
text-align: center;
}
.fa-li.fa-lg {
left: -1.85714286em;
}
.fa-border {
padding: .2em .25em .15em;
border: solid 0.08em #eee;
border-radius: .1em;
}
.pull-right {
float: right;
}
.pull-left {
float: left;
}
.fa.pull-left {
margin-right: .3em;
}
.fa.pull-right {
margin-left: .3em;
}
.fa-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear;
}
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
.fa-rotate-90 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
}
.fa-rotate-180 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
.fa-rotate-270 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
-webkit-transform: rotate(270deg);
-ms-transform: rotate(270deg);
transform: rotate(270deg);
}
.fa-flip-horizontal {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
-webkit-transform: scale(-1, 1);
-ms-transform: scale(-1, 1);
transform: scale(-1, 1);
}
.fa-flip-vertical {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
-webkit-transform: scale(1, -1);
-ms-transform: scale(1, -1);
transform: scale(1, -1);
}
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
filter: none;
}
.fa-stack {
position: relative;
display: inline-block;
width: 2em;
height: 2em;
line-height: 2em;
vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x {
position: absolute;
left: 0;
width: 100%;
text-align: center;
}
.fa-stack-1x {
line-height: inherit;
}
.fa-stack-2x {
font-size: 2em;
}
.fa-inverse {
color: #fff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.fa-glass:before {
content: "\f000";
}
.fa-music:before {
content: "\f001";
}
.fa-search:before {
content: "\f002";
}
.fa-envelope-o:before {
content: "\f003";
}
.fa-heart:before {
content: "\f004";
}
.fa-star:before {
content: "\f005";
}
.fa-star-o:before {
content: "\f006";
}
.fa-user:before {
content: "\f007";
}
.fa-film:before {
content: "\f008";
}
.fa-th-large:before {
content: "\f009";
}
.fa-th:before {
content: "\f00a";
}
.fa-th-list:before {
content: "\f00b";
}
.fa-check:before {
content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
content: "\f00d";
}
.fa-search-plus:before {
content: "\f00e";
}
.fa-search-minus:before {
content: "\f010";
}
.fa-power-off:before {
content: "\f011";
}
.fa-signal:before {
content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
content: "\f013";
}
.fa-trash-o:before {
content: "\f014";
}
.fa-home:before {
content: "\f015";
}
.fa-file-o:before {
content: "\f016";
}
.fa-clock-o:before {
content: "\f017";
}
.fa-road:before {
content: "\f018";
}
.fa-download:before {
content: "\f019";
}
.fa-arrow-circle-o-down:before {
content: "\f01a";
}
.fa-arrow-circle-o-up:before {
content: "\f01b";
}
.fa-inbox:before {
content: "\f01c";
}
.fa-play-circle-o:before {
content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
content: "\f01e";
}
.fa-refresh:before {
content: "\f021";
}
.fa-list-alt:before {
content: "\f022";
}
.fa-lock:before {
content: "\f023";
}
.fa-flag:before {
content: "\f024";
}
.fa-headphones:before {
content: "\f025";
}
.fa-volume-off:before {
content: "\f026";
}
.fa-volume-down:before {
content: "\f027";
}
.fa-volume-up:before {
content: "\f028";
}
.fa-qrcode:before {
content: "\f029";
}
.fa-barcode:before {
content: "\f02a";
}
.fa-tag:before {
content: "\f02b";
}
.fa-tags:before {
content: "\f02c";
}
.fa-book:before {
content: "\f02d";
}
.fa-bookmark:before {
content: "\f02e";
}
.fa-print:before {
content: "\f02f";
}
.fa-camera:before {
content: "\f030";
}
.fa-font:before {
content: "\f031";
}
.fa-bold:before {
content: "\f032";
}
.fa-italic:before {
content: "\f033";
}
.fa-text-height:before {
content: "\f034";
}
.fa-text-width:before {
content: "\f035";
}
.fa-align-left:before {
content: "\f036";
}
.fa-align-center:before {
content: "\f037";
}
.fa-align-right:before {
content: "\f038";
}
.fa-align-justify:before {
content: "\f039";
}
.fa-list:before {
content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
content: "\f03b";
}
.fa-indent:before {
content: "\f03c";
}
.fa-video-camera:before {
content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
content: "\f03e";
}
.fa-pencil:before {
content: "\f040";
}
.fa-map-marker:before {
content: "\f041";
}
.fa-adjust:before {
content: "\f042";
}
.fa-tint:before {
content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
content: "\f044";
}
.fa-share-square-o:before {
content: "\f045";
}
.fa-check-square-o:before {
content: "\f046";
}
.fa-arrows:before {
content: "\f047";
}
.fa-step-backward:before {
content: "\f048";
}
.fa-fast-backward:before {
content: "\f049";
}
.fa-backward:before {
content: "\f04a";
}
.fa-play:before {
content: "\f04b";
}
.fa-pause:before {
content: "\f04c";
}
.fa-stop:before {
content: "\f04d";
}
.fa-forward:before {
content: "\f04e";
}
.fa-fast-forward:before {
content: "\f050";
}
.fa-step-forward:before {
content: "\f051";
}
.fa-eject:before {
content: "\f052";
}
.fa-chevron-left:before {
content: "\f053";
}
.fa-chevron-right:before {
content: "\f054";
}
.fa-plus-circle:before {
content: "\f055";
}
.fa-minus-circle:before {
content: "\f056";
}
.fa-times-circle:before {
content: "\f057";
}
.fa-check-circle:before {
content: "\f058";
}
.fa-question-circle:before {
content: "\f059";
}
.fa-info-circle:before {
content: "\f05a";
}
.fa-crosshairs:before {
content: "\f05b";
}
.fa-times-circle-o:before {
content: "\f05c";
}
.fa-check-circle-o:before {
content: "\f05d";
}
.fa-ban:before {
content: "\f05e";
}
.fa-arrow-left:before {
content: "\f060";
}
.fa-arrow-right:before {
content: "\f061";
}
.fa-arrow-up:before {
content: "\f062";
}
.fa-arrow-down:before {
content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
content: "\f064";
}
.fa-expand:before {
content: "\f065";
}
.fa-compress:before {
content: "\f066";
}
.fa-plus:before {
content: "\f067";
}
.fa-minus:before {
content: "\f068";
}
.fa-asterisk:before {
content: "\f069";
}
.fa-exclamation-circle:before {
content: "\f06a";
}
.fa-gift:before {
content: "\f06b";
}
.fa-leaf:before {
content: "\f06c";
}
.fa-fire:before {
content: "\f06d";
}
.fa-eye:before {
content: "\f06e";
}
.fa-eye-slash:before {
content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
content: "\f071";
}
.fa-plane:before {
content: "\f072";
}
.fa-calendar:before {
content: "\f073";
}
.fa-random:before {
content: "\f074";
}
.fa-comment:before {
content: "\f075";
}
.fa-magnet:before {
content: "\f076";
}
.fa-chevron-up:before {
content: "\f077";
}
.fa-chevron-down:before {
content: "\f078";
}
.fa-retweet:before {
content: "\f079";
}
.fa-shopping-cart:before {
content: "\f07a";
}
.fa-folder:before {
content: "\f07b";
}
.fa-folder-open:before {
content: "\f07c";
}
.fa-arrows-v:before {
content: "\f07d";
}
.fa-arrows-h:before {
content: "\f07e";
}
.fa-bar-chart-o:before,
.fa-bar-chart:before {
content: "\f080";
}
.fa-twitter-square:before {
content: "\f081";
}
.fa-facebook-square:before {
content: "\f082";
}
.fa-camera-retro:before {
content: "\f083";
}
.fa-key:before {
content: "\f084";
}
.fa-gears:before,
.fa-cogs:before {
content: "\f085";
}
.fa-comments:before {
content: "\f086";
}
.fa-thumbs-o-up:before {
content: "\f087";
}
.fa-thumbs-o-down:before {
content: "\f088";
}
.fa-star-half:before {
content: "\f089";
}
.fa-heart-o:before {
content: "\f08a";
}
.fa-sign-out:before {
content: "\f08b";
}
.fa-linkedin-square:before {
content: "\f08c";
}
.fa-thumb-tack:before {
content: "\f08d";
}
.fa-external-link:before {
content: "\f08e";
}
.fa-sign-in:before {
content: "\f090";
}
.fa-trophy:before {
content: "\f091";
}
.fa-github-square:before {
content: "\f092";
}
.fa-upload:before {
content: "\f093";
}
.fa-lemon-o:before {
content: "\f094";
}
.fa-phone:before {
content: "\f095";
}
.fa-square-o:before {
content: "\f096";
}
.fa-bookmark-o:before {
content: "\f097";
}
.fa-phone-square:before {
content: "\f098";
}
.fa-twitter:before {
content: "\f099";
}
.fa-facebook:before {
content: "\f09a";
}
.fa-github:before {
content: "\f09b";
}
.fa-unlock:before {
content: "\f09c";
}
.fa-credit-card:before {
content: "\f09d";
}
.fa-rss:before {
content: "\f09e";
}
.fa-hdd-o:before {
content: "\f0a0";
}
.fa-bullhorn:before {
content: "\f0a1";
}
.fa-bell:before {
content: "\f0f3";
}
.fa-certificate:before {
content: "\f0a3";
}
.fa-hand-o-right:before {
content: "\f0a4";
}
.fa-hand-o-left:before {
content: "\f0a5";
}
.fa-hand-o-up:before {
content: "\f0a6";
}
.fa-hand-o-down:before {
content: "\f0a7";
}
.fa-arrow-circle-left:before {
content: "\f0a8";
}
.fa-arrow-circle-right:before {
content: "\f0a9";
}
.fa-arrow-circle-up:before {
content: "\f0aa";
}
.fa-arrow-circle-down:before {
content: "\f0ab";
}
.fa-globe:before {
content: "\f0ac";
}
.fa-wrench:before {
content: "\f0ad";
}
.fa-tasks:before {
content: "\f0ae";
}
.fa-filter:before {
content: "\f0b0";
}
.fa-briefcase:before {
content: "\f0b1";
}
.fa-arrows-alt:before {
content: "\f0b2";
}
.fa-group:before,
.fa-users:before {
content: "\f0c0";
}
.fa-chain:before,
.fa-link:before {
content: "\f0c1";
}
.fa-cloud:before {
content: "\f0c2";
}
.fa-flask:before {
content: "\f0c3";
}
.fa-cut:before,
.fa-scissors:before {
content: "\f0c4";
}
.fa-copy:before,
.fa-files-o:before {
content: "\f0c5";
}
.fa-paperclip:before {
content: "\f0c6";
}
.fa-save:before,
.fa-floppy-o:before {
content: "\f0c7";
}
.fa-square:before {
content: "\f0c8";
}
.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
content: "\f0c9";
}
.fa-list-ul:before {
content: "\f0ca";
}
.fa-list-ol:before {
content: "\f0cb";
}
.fa-strikethrough:before {
content: "\f0cc";
}
.fa-underline:before {
content: "\f0cd";
}
.fa-table:before {
content: "\f0ce";
}
.fa-magic:before {
content: "\f0d0";
}
.fa-truck:before {
content: "\f0d1";
}
.fa-pinterest:before {
content: "\f0d2";
}
.fa-pinterest-square:before {
content: "\f0d3";
}
.fa-google-plus-square:before {
content: "\f0d4";
}
.fa-google-plus:before {
content: "\f0d5";
}
.fa-money:before {
content: "\f0d6";
}
.fa-caret-down:before {
content: "\f0d7";
}
.fa-caret-up:before {
content: "\f0d8";
}
.fa-caret-left:before {
content: "\f0d9";
}
.fa-caret-right:before {
content: "\f0da";
}
.fa-columns:before {
content: "\f0db";
}
.fa-unsorted:before,
.fa-sort:before {
content: "\f0dc";
}
.fa-sort-down:before,
.fa-sort-desc:before {
content: "\f0dd";
}
.fa-sort-up:before,
.fa-sort-asc:before {
content: "\f0de";
}
.fa-envelope:before {
content: "\f0e0";
}
.fa-linkedin:before {
content: "\f0e1";
}
.fa-rotate-left:before,
.fa-undo:before {
content: "\f0e2";
}
.fa-legal:before,
.fa-gavel:before {
content: "\f0e3";
}
.fa-dashboard:before,
.fa-tachometer:before {
content: "\f0e4";
}
.fa-comment-o:before {
content: "\f0e5";
}
.fa-comments-o:before {
content: "\f0e6";
}
.fa-flash:before,
.fa-bolt:before {
content: "\f0e7";
}
.fa-sitemap:before {
content: "\f0e8";
}
.fa-umbrella:before {
content: "\f0e9";
}
.fa-paste:before,
.fa-clipboard:before {
content: "\f0ea";
}
.fa-lightbulb-o:before {
content: "\f0eb";
}
.fa-exchange:before {
content: "\f0ec";
}
.fa-cloud-download:before {
content: "\f0ed";
}
.fa-cloud-upload:before {
content: "\f0ee";
}
.fa-user-md:before {
content: "\f0f0";
}
.fa-stethoscope:before {
content: "\f0f1";
}
.fa-suitcase:before {
content: "\f0f2";
}
.fa-bell-o:before {
content: "\f0a2";
}
.fa-coffee:before {
content: "\f0f4";
}
.fa-cutlery:before {
content: "\f0f5";
}
.fa-file-text-o:before {
content: "\f0f6";
}
.fa-building-o:before {
content: "\f0f7";
}
.fa-hospital-o:before {
content: "\f0f8";
}
.fa-ambulance:before {
content: "\f0f9";
}
.fa-medkit:before {
content: "\f0fa";
}
.fa-fighter-jet:before {
content: "\f0fb";
}
.fa-beer:before {
content: "\f0fc";
}
.fa-h-square:before {
content: "\f0fd";
}
.fa-plus-square:before {
content: "\f0fe";
}
.fa-angle-double-left:before {
content: "\f100";
}
.fa-angle-double-right:before {
content: "\f101";
}
.fa-angle-double-up:before {
content: "\f102";
}
.fa-angle-double-down:before {
content: "\f103";
}
.fa-angle-left:before {
content: "\f104";
}
.fa-angle-right:before {
content: "\f105";
}
.fa-angle-up:before {
content: "\f106";
}
.fa-angle-down:before {
content: "\f107";
}
.fa-desktop:before {
content: "\f108";
}
.fa-laptop:before {
content: "\f109";
}
.fa-tablet:before {
content: "\f10a";
}
.fa-mobile-phone:before,
.fa-mobile:before {
content: "\f10b";
}
.fa-circle-o:before {
content: "\f10c";
}
.fa-quote-left:before {
content: "\f10d";
}
.fa-quote-right:before {
content: "\f10e";
}
.fa-spinner:before {
content: "\f110";
}
.fa-circle:before {
content: "\f111";
}
.fa-mail-reply:before,
.fa-reply:before {
content: "\f112";
}
.fa-github-alt:before {
content: "\f113";
}
.fa-folder-o:before {
content: "\f114";
}
.fa-folder-open-o:before {
content: "\f115";
}
.fa-smile-o:before {
content: "\f118";
}
.fa-frown-o:before {
content: "\f119";
}
.fa-meh-o:before {
content: "\f11a";
}
.fa-gamepad:before {
content: "\f11b";
}
.fa-keyboard-o:before {
content: "\f11c";
}
.fa-flag-o:before {
content: "\f11d";
}
.fa-flag-checkered:before {
content: "\f11e";
}
.fa-terminal:before {
content: "\f120";
}
.fa-code:before {
content: "\f121";
}
.fa-mail-reply-all:before,
.fa-reply-all:before {
content: "\f122";
}
.fa-star-half-empty:before,
.fa-star-half-full:before,
.fa-star-half-o:before {
content: "\f123";
}
.fa-location-arrow:before {
content: "\f124";
}
.fa-crop:before {
content: "\f125";
}
.fa-code-fork:before {
content: "\f126";
}
.fa-unlink:before,
.fa-chain-broken:before {
content: "\f127";
}
.fa-question:before {
content: "\f128";
}
.fa-info:before {
content: "\f129";
}
.fa-exclamation:before {
content: "\f12a";
}
.fa-superscript:before {
content: "\f12b";
}
.fa-subscript:before {
content: "\f12c";
}
.fa-eraser:before {
content: "\f12d";
}
.fa-puzzle-piece:before {
content: "\f12e";
}
.fa-microphone:before {
content: "\f130";
}
.fa-microphone-slash:before {
content: "\f131";
}
.fa-shield:before {
content: "\f132";
}
.fa-calendar-o:before {
content: "\f133";
}
.fa-fire-extinguisher:before {
content: "\f134";
}
.fa-rocket:before {
content: "\f135";
}
.fa-maxcdn:before {
content: "\f136";
}
.fa-chevron-circle-left:before {
content: "\f137";
}
.fa-chevron-circle-right:before {
content: "\f138";
}
.fa-chevron-circle-up:before {
content: "\f139";
}
.fa-chevron-circle-down:before {
content: "\f13a";
}
.fa-html5:before {
content: "\f13b";
}
.fa-css3:before {
content: "\f13c";
}
.fa-anchor:before {
content: "\f13d";
}
.fa-unlock-alt:before {
content: "\f13e";
}
.fa-bullseye:before {
content: "\f140";
}
.fa-ellipsis-h:before {
content: "\f141";
}
.fa-ellipsis-v:before {
content: "\f142";
}
.fa-rss-square:before {
content: "\f143";
}
.fa-play-circle:before {
content: "\f144";
}
.fa-ticket:before {
content: "\f145";
}
.fa-minus-square:before {
content: "\f146";
}
.fa-minus-square-o:before {
content: "\f147";
}
.fa-level-up:before {
content: "\f148";
}
.fa-level-down:before {
content: "\f149";
}
.fa-check-square:before {
content: "\f14a";
}
.fa-pencil-square:before {
content: "\f14b";
}
.fa-external-link-square:before {
content: "\f14c";
}
.fa-share-square:before {
content: "\f14d";
}
.fa-compass:before {
content: "\f14e";
}
.fa-toggle-down:before,
.fa-caret-square-o-down:before {
content: "\f150";
}
.fa-toggle-up:before,
.fa-caret-square-o-up:before {
content: "\f151";
}
.fa-toggle-right:before,
.fa-caret-square-o-right:before {
content: "\f152";
}
.fa-euro:before,
.fa-eur:before {
content: "\f153";
}
.fa-gbp:before {
content: "\f154";
}
.fa-dollar:before,
.fa-usd:before {
content: "\f155";
}
.fa-rupee:before,
.fa-inr:before {
content: "\f156";
}
.fa-cny:before,
.fa-rmb:before,
.fa-yen:before,
.fa-jpy:before {
content: "\f157";
}
.fa-ruble:before,
.fa-rouble:before,
.fa-rub:before {
content: "\f158";
}
.fa-won:before,
.fa-krw:before {
content: "\f159";
}
.fa-bitcoin:before,
.fa-btc:before {
content: "\f15a";
}
.fa-file:before {
content: "\f15b";
}
.fa-file-text:before {
content: "\f15c";
}
.fa-sort-alpha-asc:before {
content: "\f15d";
}
.fa-sort-alpha-desc:before {
content: "\f15e";
}
.fa-sort-amount-asc:before {
content: "\f160";
}
.fa-sort-amount-desc:before {
content: "\f161";
}
.fa-sort-numeric-asc:before {
content: "\f162";
}
.fa-sort-numeric-desc:before {
content: "\f163";
}
.fa-thumbs-up:before {
content: "\f164";
}
.fa-thumbs-down:before {
content: "\f165";
}
.fa-youtube-square:before {
content: "\f166";
}
.fa-youtube:before {
content: "\f167";
}
.fa-xing:before {
content: "\f168";
}
.fa-xing-square:before {
content: "\f169";
}
.fa-youtube-play:before {
content: "\f16a";
}
.fa-dropbox:before {
content: "\f16b";
}
.fa-stack-overflow:before {
content: "\f16c";
}
.fa-instagram:before {
content: "\f16d";
}
.fa-flickr:before {
content: "\f16e";
}
.fa-adn:before {
content: "\f170";
}
.fa-bitbucket:before {
content: "\f171";
}
.fa-bitbucket-square:before {
content: "\f172";
}
.fa-tumblr:before {
content: "\f173";
}
.fa-tumblr-square:before {
content: "\f174";
}
.fa-long-arrow-down:before {
content: "\f175";
}
.fa-long-arrow-up:before {
content: "\f176";
}
.fa-long-arrow-left:before {
content: "\f177";
}
.fa-long-arrow-right:before {
content: "\f178";
}
.fa-apple:before {
content: "\f179";
}
.fa-windows:before {
content: "\f17a";
}
.fa-android:before {
content: "\f17b";
}
.fa-linux:before {
content: "\f17c";
}
.fa-dribbble:before {
content: "\f17d";
}
.fa-skype:before {
content: "\f17e";
}
.fa-foursquare:before {
content: "\f180";
}
.fa-trello:before {
content: "\f181";
}
.fa-female:before {
content: "\f182";
}
.fa-male:before {
content: "\f183";
}
.fa-gittip:before {
content: "\f184";
}
.fa-sun-o:before {
content: "\f185";
}
.fa-moon-o:before {
content: "\f186";
}
.fa-archive:before {
content: "\f187";
}
.fa-bug:before {
content: "\f188";
}
.fa-vk:before {
content: "\f189";
}
.fa-weibo:before {
content: "\f18a";
}
.fa-renren:before {
content: "\f18b";
}
.fa-pagelines:before {
content: "\f18c";
}
.fa-stack-exchange:before {
content: "\f18d";
}
.fa-arrow-circle-o-right:before {
content: "\f18e";
}
.fa-arrow-circle-o-left:before {
content: "\f190";
}
.fa-toggle-left:before,
.fa-caret-square-o-left:before {
content: "\f191";
}
.fa-dot-circle-o:before {
content: "\f192";
}
.fa-wheelchair:before {
content: "\f193";
}
.fa-vimeo-square:before {
content: "\f194";
}
.fa-turkish-lira:before,
.fa-try:before {
content: "\f195";
}
.fa-plus-square-o:before {
content: "\f196";
}
.fa-space-shuttle:before {
content: "\f197";
}
.fa-slack:before {
content: "\f198";
}
.fa-envelope-square:before {
content: "\f199";
}
.fa-wordpress:before {
content: "\f19a";
}
.fa-openid:before {
content: "\f19b";
}
.fa-institution:before,
.fa-bank:before,
.fa-university:before {
content: "\f19c";
}
.fa-mortar-board:before,
.fa-graduation-cap:before {
content: "\f19d";
}
.fa-yahoo:before {
content: "\f19e";
}
.fa-google:before {
content: "\f1a0";
}
.fa-reddit:before {
content: "\f1a1";
}
.fa-reddit-square:before {
content: "\f1a2";
}
.fa-stumbleupon-circle:before {
content: "\f1a3";
}
.fa-stumbleupon:before {
content: "\f1a4";
}
.fa-delicious:before {
content: "\f1a5";
}
.fa-digg:before {
content: "\f1a6";
}
.fa-pied-piper:before {
content: "\f1a7";
}
.fa-pied-piper-alt:before {
content: "\f1a8";
}
.fa-drupal:before {
content: "\f1a9";
}
.fa-joomla:before {
content: "\f1aa";
}
.fa-language:before {
content: "\f1ab";
}
.fa-fax:before {
content: "\f1ac";
}
.fa-building:before {
content: "\f1ad";
}
.fa-child:before {
content: "\f1ae";
}
.fa-paw:before {
content: "\f1b0";
}
.fa-spoon:before {
content: "\f1b1";
}
.fa-cube:before {
content: "\f1b2";
}
.fa-cubes:before {
content: "\f1b3";
}
.fa-behance:before {
content: "\f1b4";
}
.fa-behance-square:before {
content: "\f1b5";
}
.fa-steam:before {
content: "\f1b6";
}
.fa-steam-square:before {
content: "\f1b7";
}
.fa-recycle:before {
content: "\f1b8";
}
.fa-automobile:before,
.fa-car:before {
content: "\f1b9";
}
.fa-cab:before,
.fa-taxi:before {
content: "\f1ba";
}
.fa-tree:before {
content: "\f1bb";
}
.fa-spotify:before {
content: "\f1bc";
}
.fa-deviantart:before {
content: "\f1bd";
}
.fa-soundcloud:before {
content: "\f1be";
}
.fa-database:before {
content: "\f1c0";
}
.fa-file-pdf-o:before {
content: "\f1c1";
}
.fa-file-word-o:before {
content: "\f1c2";
}
.fa-file-excel-o:before {
content: "\f1c3";
}
.fa-file-powerpoint-o:before {
content: "\f1c4";
}
.fa-file-photo-o:before,
.fa-file-picture-o:before,
.fa-file-image-o:before {
content: "\f1c5";
}
.fa-file-zip-o:before,
.fa-file-archive-o:before {
content: "\f1c6";
}
.fa-file-sound-o:before,
.fa-file-audio-o:before {
content: "\f1c7";
}
.fa-file-movie-o:before,
.fa-file-video-o:before {
content: "\f1c8";
}
.fa-file-code-o:before {
content: "\f1c9";
}
.fa-vine:before {
content: "\f1ca";
}
.fa-codepen:before {
content: "\f1cb";
}
.fa-jsfiddle:before {
content: "\f1cc";
}
.fa-life-bouy:before,
.fa-life-buoy:before,
.fa-life-saver:before,
.fa-support:before,
.fa-life-ring:before {
content: "\f1cd";
}
.fa-circle-o-notch:before {
content: "\f1ce";
}
.fa-ra:before,
.fa-rebel:before {
content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
content: "\f1d1";
}
.fa-git-square:before {
content: "\f1d2";
}
.fa-git:before {
content: "\f1d3";
}
.fa-hacker-news:before {
content: "\f1d4";
}
.fa-tencent-weibo:before {
content: "\f1d5";
}
.fa-qq:before {
content: "\f1d6";
}
.fa-wechat:before,
.fa-weixin:before {
content: "\f1d7";
}
.fa-send:before,
.fa-paper-plane:before {
content: "\f1d8";
}
.fa-send-o:before,
.fa-paper-plane-o:before {
content: "\f1d9";
}
.fa-history:before {
content: "\f1da";
}
.fa-circle-thin:before {
content: "\f1db";
}
.fa-header:before {
content: "\f1dc";
}
.fa-paragraph:before {
content: "\f1dd";
}
.fa-sliders:before {
content: "\f1de";
}
.fa-share-alt:before {
content: "\f1e0";
}
.fa-share-alt-square:before {
content: "\f1e1";
}
.fa-bomb:before {
content: "\f1e2";
}
.fa-soccer-ball-o:before,
.fa-futbol-o:before {
content: "\f1e3";
}
.fa-tty:before {
content: "\f1e4";
}
.fa-binoculars:before {
content: "\f1e5";
}
.fa-plug:before {
content: "\f1e6";
}
.fa-slideshare:before {
content: "\f1e7";
}
.fa-twitch:before {
content: "\f1e8";
}
.fa-yelp:before {
content: "\f1e9";
}
.fa-newspaper-o:before {
content: "\f1ea";
}
.fa-wifi:before {
content: "\f1eb";
}
.fa-calculator:before {
content: "\f1ec";
}
.fa-paypal:before {
content: "\f1ed";
}
.fa-google-wallet:before {
content: "\f1ee";
}
.fa-cc-visa:before {
content: "\f1f0";
}
.fa-cc-mastercard:before {
content: "\f1f1";
}
.fa-cc-discover:before {
content: "\f1f2";
}
.fa-cc-amex:before {
content: "\f1f3";
}
.fa-cc-paypal:before {
content: "\f1f4";
}
.fa-cc-stripe:before {
content: "\f1f5";
}
.fa-bell-slash:before {
content: "\f1f6";
}
.fa-bell-slash-o:before {
content: "\f1f7";
}
.fa-trash:before {
content: "\f1f8";
}
.fa-copyright:before {
content: "\f1f9";
}
.fa-at:before {
content: "\f1fa";
}
.fa-eyedropper:before {
content: "\f1fb";
}
.fa-paint-brush:before {
content: "\f1fc";
}
.fa-birthday-cake:before {
content: "\f1fd";
}
.fa-area-chart:before {
content: "\f1fe";
}
.fa-pie-chart:before {
content: "\f200";
}
.fa-line-chart:before {
content: "\f201";
}
.fa-lastfm:before {
content: "\f202";
}
.fa-lastfm-square:before {
content: "\f203";
}
.fa-toggle-off:before {
content: "\f204";
}
.fa-toggle-on:before {
content: "\f205";
}
.fa-bicycle:before {
content: "\f206";
}
.fa-bus:before {
content: "\f207";
}
.fa-ioxhost:before {
content: "\f208";
}
.fa-angellist:before {
content: "\f209";
}
.fa-cc:before {
content: "\f20a";
}
.fa-shekel:before,
.fa-sheqel:before,
.fa-ils:before {
content: "\f20b";
}
.fa-meanpath:before {
content: "\f20c";
}
/*!
*
* IPython base
*
*/
.modal.fade .modal-dialog {
-webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0);
-o-transform: translate(0, 0);
transform: translate(0, 0);
}
code {
color: #000;
}
pre {
font-size: inherit;
line-height: inherit;
}
label {
font-weight: normal;
}
/* Make the page background atleast 100% the height of the view port */
/* Make the page itself atleast 70% the height of the view port */
.border-box-sizing {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.corner-all {
border-radius: 2px;
}
.no-padding {
padding: 0px;
}
/* Flexible box model classes */
/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
/* This file is a compatability layer. It allows the usage of flexible box
model layouts accross multiple browsers, including older browsers. The newest,
universal implementation of the flexible box model is used when available (see
`Modern browsers` comments below). Browsers that are known to implement this
new spec completely include:
Firefox 28.0+
Chrome 29.0+
Internet Explorer 11+
Opera 17.0+
Browsers not listed, including Safari, are supported via the styling under the
`Old browsers` comments below.
*/
.hbox {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
.hbox > * {
/* Old browsers */
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
/* Modern browsers */
flex: none;
}
.vbox {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
.vbox > * {
/* Old browsers */
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
/* Modern browsers */
flex: none;
}
.hbox.reverse,
.vbox.reverse,
.reverse {
/* Old browsers */
-webkit-box-direction: reverse;
-moz-box-direction: reverse;
box-direction: reverse;
/* Modern browsers */
flex-direction: row-reverse;
}
.hbox.box-flex0,
.vbox.box-flex0,
.box-flex0 {
/* Old browsers */
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
/* Modern browsers */
flex: none;
width: auto;
}
.hbox.box-flex1,
.vbox.box-flex1,
.box-flex1 {
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
.hbox.box-flex,
.vbox.box-flex,
.box-flex {
/* Old browsers */
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
.hbox.box-flex2,
.vbox.box-flex2,
.box-flex2 {
/* Old browsers */
-webkit-box-flex: 2;
-moz-box-flex: 2;
box-flex: 2;
/* Modern browsers */
flex: 2;
}
.box-group1 {
/* Deprecated */
-webkit-box-flex-group: 1;
-moz-box-flex-group: 1;
box-flex-group: 1;
}
.box-group2 {
/* Deprecated */
-webkit-box-flex-group: 2;
-moz-box-flex-group: 2;
box-flex-group: 2;
}
.hbox.start,
.vbox.start,
.start {
/* Old browsers */
-webkit-box-pack: start;
-moz-box-pack: start;
box-pack: start;
/* Modern browsers */
justify-content: flex-start;
}
.hbox.end,
.vbox.end,
.end {
/* Old browsers */
-webkit-box-pack: end;
-moz-box-pack: end;
box-pack: end;
/* Modern browsers */
justify-content: flex-end;
}
.hbox.center,
.vbox.center,
.center {
/* Old browsers */
-webkit-box-pack: center;
-moz-box-pack: center;
box-pack: center;
/* Modern browsers */
justify-content: center;
}
.hbox.baseline,
.vbox.baseline,
.baseline {
/* Old browsers */
-webkit-box-pack: baseline;
-moz-box-pack: baseline;
box-pack: baseline;
/* Modern browsers */
justify-content: baseline;
}
.hbox.stretch,
.vbox.stretch,
.stretch {
/* Old browsers */
-webkit-box-pack: stretch;
-moz-box-pack: stretch;
box-pack: stretch;
/* Modern browsers */
justify-content: stretch;
}
.hbox.align-start,
.vbox.align-start,
.align-start {
/* Old browsers */
-webkit-box-align: start;
-moz-box-align: start;
box-align: start;
/* Modern browsers */
align-items: flex-start;
}
.hbox.align-end,
.vbox.align-end,
.align-end {
/* Old browsers */
-webkit-box-align: end;
-moz-box-align: end;
box-align: end;
/* Modern browsers */
align-items: flex-end;
}
.hbox.align-center,
.vbox.align-center,
.align-center {
/* Old browsers */
-webkit-box-align: center;
-moz-box-align: center;
box-align: center;
/* Modern browsers */
align-items: center;
}
.hbox.align-baseline,
.vbox.align-baseline,
.align-baseline {
/* Old browsers */
-webkit-box-align: baseline;
-moz-box-align: baseline;
box-align: baseline;
/* Modern browsers */
align-items: baseline;
}
.hbox.align-stretch,
.vbox.align-stretch,
.align-stretch {
/* Old browsers */
-webkit-box-align: stretch;
-moz-box-align: stretch;
box-align: stretch;
/* Modern browsers */
align-items: stretch;
}
div.error {
margin: 2em;
text-align: center;
}
div.error > h1 {
font-size: 500%;
line-height: normal;
}
div.error > p {
font-size: 200%;
line-height: normal;
}
div.traceback-wrapper {
text-align: left;
max-width: 800px;
margin: auto;
}
/**
* Primary styles
*
* Author: Jupyter Development Team
*/
body {
background-color: #fff;
/* This makes sure that the body covers the entire window and needs to
be in a different element than the display: box in wrapper below */
position: absolute;
left: 0px;
right: 0px;
top: 0px;
bottom: 0px;
overflow: visible;
}
body > #header {
/* Initially hidden to prevent FLOUC */
display: none;
background-color: #fff;
/* Display over codemirror */
position: relative;
z-index: 100;
}
body > #header #header-container {
padding-bottom: 5px;
padding-top: 5px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
body > #header .header-bar {
width: 100%;
height: 1px;
background: #e7e7e7;
margin-bottom: -1px;
}
@media print {
body > #header {
display: none !important;
}
}
#header-spacer {
width: 100%;
visibility: hidden;
}
@media print {
#header-spacer {
display: none;
}
}
#ipython_notebook {
padding-left: 0px;
padding-top: 1px;
padding-bottom: 1px;
}
@media (max-width: 991px) {
#ipython_notebook {
margin-left: 10px;
}
}
[dir="rtl"] #ipython_notebook {
float: right !important;
}
#noscript {
width: auto;
padding-top: 16px;
padding-bottom: 16px;
text-align: center;
font-size: 22px;
color: red;
font-weight: bold;
}
#ipython_notebook img {
height: 28px;
}
#site {
width: 100%;
display: none;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
overflow: auto;
}
@media print {
#site {
height: auto !important;
}
}
/* Smaller buttons */
.ui-button .ui-button-text {
padding: 0.2em 0.8em;
font-size: 77%;
}
input.ui-button {
padding: 0.3em 0.9em;
}
span#login_widget {
float: right;
}
span#login_widget > .button,
#logout {
color: #333;
background-color: #fff;
border-color: #ccc;
}
span#login_widget > .button:focus,
#logout:focus,
span#login_widget > .button.focus,
#logout.focus {
color: #333;
background-color: #e6e6e6;
border-color: #8c8c8c;
}
span#login_widget > .button:hover,
#logout:hover {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
span#login_widget > .button:active:hover,
#logout:active:hover,
span#login_widget > .button.active:hover,
#logout.active:hover,
.open > .dropdown-togglespan#login_widget > .button:hover,
.open > .dropdown-toggle#logout:hover,
span#login_widget > .button:active:focus,
#logout:active:focus,
span#login_widget > .button.active:focus,
#logout.active:focus,
.open > .dropdown-togglespan#login_widget > .button:focus,
.open > .dropdown-toggle#logout:focus,
span#login_widget > .button:active.focus,
#logout:active.focus,
span#login_widget > .button.active.focus,
#logout.active.focus,
.open > .dropdown-togglespan#login_widget > .button.focus,
.open > .dropdown-toggle#logout.focus {
color: #333;
background-color: #d4d4d4;
border-color: #8c8c8c;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
background-image: none;
}
span#login_widget > .button.disabled:hover,
#logout.disabled:hover,
span#login_widget > .button[disabled]:hover,
#logout[disabled]:hover,
fieldset[disabled] span#login_widget > .button:hover,
fieldset[disabled] #logout:hover,
span#login_widget > .button.disabled:focus,
#logout.disabled:focus,
span#login_widget > .button[disabled]:focus,
#logout[disabled]:focus,
fieldset[disabled] span#login_widget > .button:focus,
fieldset[disabled] #logout:focus,
span#login_widget > .button.disabled.focus,
#logout.disabled.focus,
span#login_widget > .button[disabled].focus,
#logout[disabled].focus,
fieldset[disabled] span#login_widget > .button.focus,
fieldset[disabled] #logout.focus {
background-color: #fff;
border-color: #ccc;
}
span#login_widget > .button .badge,
#logout .badge {
color: #fff;
background-color: #333;
}
.nav-header {
text-transform: none;
}
#header > span {
margin-top: 10px;
}
.modal_stretch .modal-dialog {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
min-height: 80vh;
}
.modal_stretch .modal-dialog .modal-body {
max-height: calc(100vh - 200px);
overflow: auto;
flex: 1;
}
@media (min-width: 768px) {
.modal .modal-dialog {
width: 700px;
}
}
@media (min-width: 768px) {
select.form-control {
margin-left: 12px;
margin-right: 12px;
}
}
/*!
*
* IPython auth
*
*/
.center-nav {
display: inline-block;
margin-bottom: -4px;
}
/*!
*
* IPython tree view
*
*/
/* We need an invisible input field on top of the sentense*/
/* "Drag file onto the list ..." */
.alternate_upload {
background-color: none;
display: inline;
}
.alternate_upload.form {
padding: 0;
margin: 0;
}
.alternate_upload input.fileinput {
text-align: center;
vertical-align: middle;
display: inline;
opacity: 0;
z-index: 2;
width: 12ex;
margin-right: -12ex;
}
.alternate_upload .btn-upload {
height: 22px;
}
/**
* Primary styles
*
* Author: Jupyter Development Team
*/
[dir="rtl"] #tabs li {
float: right;
}
ul#tabs {
margin-bottom: 4px;
}
[dir="rtl"] ul#tabs {
margin-right: 0px;
}
ul#tabs a {
padding-top: 6px;
padding-bottom: 4px;
}
ul.breadcrumb a:focus,
ul.breadcrumb a:hover {
text-decoration: none;
}
ul.breadcrumb i.icon-home {
font-size: 16px;
margin-right: 4px;
}
ul.breadcrumb span {
color: #5e5e5e;
}
.list_toolbar {
padding: 4px 0 4px 0;
vertical-align: middle;
}
.list_toolbar .tree-buttons {
padding-top: 1px;
}
[dir="rtl"] .list_toolbar .tree-buttons {
float: left !important;
}
[dir="rtl"] .list_toolbar .pull-right {
padding-top: 1px;
float: left !important;
}
[dir="rtl"] .list_toolbar .pull-left {
float: right !important;
}
.dynamic-buttons {
padding-top: 3px;
display: inline-block;
}
.list_toolbar [class*="span"] {
min-height: 24px;
}
.list_header {
font-weight: bold;
background-color: #EEE;
}
.list_placeholder {
font-weight: bold;
padding-top: 4px;
padding-bottom: 4px;
padding-left: 7px;
padding-right: 7px;
}
.list_container {
margin-top: 4px;
margin-bottom: 20px;
border: 1px solid #ddd;
border-radius: 2px;
}
.list_container > div {
border-bottom: 1px solid #ddd;
}
.list_container > div:hover .list-item {
background-color: red;
}
.list_container > div:last-child {
border: none;
}
.list_item:hover .list_item {
background-color: #ddd;
}
.list_item a {
text-decoration: none;
}
.list_item:hover {
background-color: #fafafa;
}
.list_header > div,
.list_item > div {
padding-top: 4px;
padding-bottom: 4px;
padding-left: 7px;
padding-right: 7px;
line-height: 22px;
}
.list_header > div input,
.list_item > div input {
margin-right: 7px;
margin-left: 14px;
vertical-align: baseline;
line-height: 22px;
position: relative;
top: -1px;
}
.list_header > div .item_link,
.list_item > div .item_link {
margin-left: -1px;
vertical-align: baseline;
line-height: 22px;
}
.new-file input[type=checkbox] {
visibility: hidden;
}
.item_name {
line-height: 22px;
height: 24px;
}
.item_icon {
font-size: 14px;
color: #5e5e5e;
margin-right: 7px;
margin-left: 7px;
line-height: 22px;
vertical-align: baseline;
}
.item_buttons {
line-height: 1em;
margin-left: -5px;
}
.item_buttons .btn,
.item_buttons .btn-group,
.item_buttons .input-group {
float: left;
}
.item_buttons > .btn,
.item_buttons > .btn-group,
.item_buttons > .input-group {
margin-left: 5px;
}
.item_buttons .btn {
min-width: 13ex;
}
.item_buttons .running-indicator {
padding-top: 4px;
color: #5cb85c;
}
.item_buttons .kernel-name {
padding-top: 4px;
color: #5bc0de;
margin-right: 7px;
float: left;
}
.toolbar_info {
height: 24px;
line-height: 24px;
}
.list_item input:not([type=checkbox]) {
padding-top: 3px;
padding-bottom: 3px;
height: 22px;
line-height: 14px;
margin: 0px;
}
.highlight_text {
color: blue;
}
#project_name {
display: inline-block;
padding-left: 7px;
margin-left: -2px;
}
#project_name > .breadcrumb {
padding: 0px;
margin-bottom: 0px;
background-color: transparent;
font-weight: bold;
}
#tree-selector {
padding-right: 0px;
}
[dir="rtl"] #tree-selector a {
float: right;
}
#button-select-all {
min-width: 50px;
}
#select-all {
margin-left: 7px;
margin-right: 2px;
}
.menu_icon {
margin-right: 2px;
}
.tab-content .row {
margin-left: 0px;
margin-right: 0px;
}
.folder_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f114";
}
.folder_icon:before.pull-left {
margin-right: .3em;
}
.folder_icon:before.pull-right {
margin-left: .3em;
}
.notebook_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f02d";
position: relative;
top: -1px;
}
.notebook_icon:before.pull-left {
margin-right: .3em;
}
.notebook_icon:before.pull-right {
margin-left: .3em;
}
.running_notebook_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f02d";
position: relative;
top: -1px;
color: #5cb85c;
}
.running_notebook_icon:before.pull-left {
margin-right: .3em;
}
.running_notebook_icon:before.pull-right {
margin-left: .3em;
}
.file_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f016";
position: relative;
top: -2px;
}
.file_icon:before.pull-left {
margin-right: .3em;
}
.file_icon:before.pull-right {
margin-left: .3em;
}
#notebook_toolbar .pull-right {
padding-top: 0px;
margin-right: -1px;
}
ul#new-menu {
left: auto;
right: 0;
}
[dir="rtl"] #new-menu {
text-align: right;
}
.kernel-menu-icon {
padding-right: 12px;
width: 24px;
content: "\f096";
}
.kernel-menu-icon:before {
content: "\f096";
}
.kernel-menu-icon-current:before {
content: "\f00c";
}
#tab_content {
padding-top: 20px;
}
#running .panel-group .panel {
margin-top: 3px;
margin-bottom: 1em;
}
#running .panel-group .panel .panel-heading {
background-color: #EEE;
padding-top: 4px;
padding-bottom: 4px;
padding-left: 7px;
padding-right: 7px;
line-height: 22px;
}
#running .panel-group .panel .panel-heading a:focus,
#running .panel-group .panel .panel-heading a:hover {
text-decoration: none;
}
#running .panel-group .panel .panel-body {
padding: 0px;
}
#running .panel-group .panel .panel-body .list_container {
margin-top: 0px;
margin-bottom: 0px;
border: 0px;
border-radius: 0px;
}
#running .panel-group .panel .panel-body .list_container .list_item {
border-bottom: 1px solid #ddd;
}
#running .panel-group .panel .panel-body .list_container .list_item:last-child {
border-bottom: 0px;
}
[dir="rtl"] #running .col-sm-8 {
float: right !important;
}
.delete-button {
display: none;
}
.duplicate-button {
display: none;
}
.rename-button {
display: none;
}
.shutdown-button {
display: none;
}
.dynamic-instructions {
display: inline-block;
padding-top: 4px;
}
/*!
*
* IPython text editor webapp
*
*/
.selected-keymap i.fa {
padding: 0px 5px;
}
.selected-keymap i.fa:before {
content: "\f00c";
}
#mode-menu {
overflow: auto;
max-height: 20em;
}
.edit_app #header {
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.edit_app #menubar .navbar {
/* Use a negative 1 bottom margin, so the border overlaps the border of the
header */
margin-bottom: -1px;
}
.dirty-indicator {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
width: 20px;
}
.dirty-indicator.pull-left {
margin-right: .3em;
}
.dirty-indicator.pull-right {
margin-left: .3em;
}
.dirty-indicator-dirty {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
width: 20px;
}
.dirty-indicator-dirty.pull-left {
margin-right: .3em;
}
.dirty-indicator-dirty.pull-right {
margin-left: .3em;
}
.dirty-indicator-clean {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
width: 20px;
}
.dirty-indicator-clean.pull-left {
margin-right: .3em;
}
.dirty-indicator-clean.pull-right {
margin-left: .3em;
}
.dirty-indicator-clean:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f00c";
}
.dirty-indicator-clean:before.pull-left {
margin-right: .3em;
}
.dirty-indicator-clean:before.pull-right {
margin-left: .3em;
}
#filename {
font-size: 16pt;
display: table;
padding: 0px 5px;
}
#current-mode {
padding-left: 5px;
padding-right: 5px;
}
#texteditor-backdrop {
padding-top: 20px;
padding-bottom: 20px;
}
@media not print {
#texteditor-backdrop {
background-color: #EEE;
}
}
@media print {
#texteditor-backdrop #texteditor-container .CodeMirror-gutter,
#texteditor-backdrop #texteditor-container .CodeMirror-gutters {
background-color: #fff;
}
}
@media not print {
#texteditor-backdrop #texteditor-container .CodeMirror-gutter,
#texteditor-backdrop #texteditor-container .CodeMirror-gutters {
background-color: #fff;
}
}
@media not print {
#texteditor-backdrop #texteditor-container {
padding: 0px;
background-color: #fff;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
}
/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI colors. */
.ansibold {
font-weight: bold;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
color: black;
}
.ansired {
color: darkred;
}
.ansigreen {
color: darkgreen;
}
.ansiyellow {
color: #c4a000;
}
.ansiblue {
color: darkblue;
}
.ansipurple {
color: darkviolet;
}
.ansicyan {
color: steelblue;
}
.ansigray {
color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
background-color: black;
}
.ansibgred {
background-color: red;
}
.ansibggreen {
background-color: green;
}
.ansibgyellow {
background-color: yellow;
}
.ansibgblue {
background-color: blue;
}
.ansibgpurple {
background-color: magenta;
}
.ansibgcyan {
background-color: cyan;
}
.ansibggray {
background-color: gray;
}
div.cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
border-radius: 2px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
border-width: 1px;
border-style: solid;
border-color: transparent;
width: 100%;
padding: 5px;
/* This acts as a spacer between cells, that is outside the border */
margin: 0px;
outline: none;
border-left-width: 1px;
padding-left: 5px;
background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%);
}
div.cell.jupyter-soft-selected {
border-left-color: #90CAF9;
border-left-color: #E3F2FD;
border-left-width: 1px;
padding-left: 5px;
border-right-color: #E3F2FD;
border-right-width: 1px;
background: #E3F2FD;
}
@media print {
div.cell.jupyter-soft-selected {
border-color: transparent;
}
}
div.cell.selected {
border-color: #ababab;
border-left-width: 0px;
padding-left: 6px;
background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 5px, transparent 5px, transparent 100%);
}
@media print {
div.cell.selected {
border-color: transparent;
}
}
div.cell.selected.jupyter-soft-selected {
border-left-width: 0;
padding-left: 6px;
background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 7px, #E3F2FD 7px, #E3F2FD 100%);
}
.edit_mode div.cell.selected {
border-color: #66BB6A;
border-left-width: 0px;
padding-left: 6px;
background: linear-gradient(to right, #66BB6A -40px, #66BB6A 5px, transparent 5px, transparent 100%);
}
@media print {
.edit_mode div.cell.selected {
border-color: transparent;
}
}
.prompt {
/* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
min-width: 14ex;
/* This padding is tuned to match the padding on the CodeMirror editor. */
padding: 0.4em;
margin: 0px;
font-family: monospace;
text-align: right;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
/* Don't highlight prompt number selection */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
/* Use default cursor */
cursor: default;
}
@media (max-width: 540px) {
.prompt {
text-align: left;
}
}
div.inner_cell {
min-width: 0;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
border: 1px solid #cfcfcf;
border-radius: 2px;
background: #f7f7f7;
line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
is no content in the output_subarea and the prompt. The main purpose of this is
to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
padding-top: 0;
padding-bottom: 0;
}
div.unrecognized_cell {
padding: 5px 5px 5px 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.unrecognized_cell .inner_cell {
border-radius: 2px;
padding: 5px;
font-weight: bold;
color: red;
border: 1px solid #cfcfcf;
background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
color: inherit;
text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
color: inherit;
text-decoration: none;
}
@media (max-width: 540px) {
div.unrecognized_cell > div.prompt {
display: none;
}
}
div.code_cell {
/* avoid page breaking on code cells when printing */
}
@media print {
div.code_cell {
page-break-inside: avoid;
}
}
/* any special styling for code cells that are currently running goes here */
div.input {
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.input {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
color: #303F9F;
border-top: 1px solid transparent;
}
div.input_area > div.highlight {
margin: 0.4em;
border: none;
padding: 0px;
background-color: transparent;
}
div.input_area > div.highlight > pre {
margin: 0px;
border: none;
padding: 0px;
background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
* monospace font with inconsistent normal/bold/italic height. See
* notebookmain.js. Such fonts will have keywords vertically offset with
* respect to the rest of the text. The user should select a better font.
* See: https://github.com/ipython/ipython/issues/1503
*
* .CodeMirror span {
* vertical-align: bottom;
* }
*/
.CodeMirror {
line-height: 1.21429em;
/* Changed from 1em to our global default */
font-size: 14px;
height: auto;
/* Changed to auto to autogrow */
background: none;
/* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
/* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
/* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
overflow-y: hidden;
overflow-x: auto;
}
.CodeMirror-lines {
/* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
/* we have set a different line-height and want this to scale with that. */
padding: 0.4em;
}
.CodeMirror-linenumber {
padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
border-bottom-left-radius: 2px;
border-top-left-radius: 2px;
}
.CodeMirror pre {
/* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
/* .CodeMirror-lines */
padding: 0;
border: 0;
border-radius: 0;
}
/*
Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme
*/
.highlight-base {
color: #000;
}
.highlight-variable {
color: #000;
}
.highlight-variable-2 {
color: #1a1a1a;
}
.highlight-variable-3 {
color: #333333;
}
.highlight-string {
color: #BA2121;
}
.highlight-comment {
color: #408080;
font-style: italic;
}
.highlight-number {
color: #080;
}
.highlight-atom {
color: #88F;
}
.highlight-keyword {
color: #008000;
font-weight: bold;
}
.highlight-builtin {
color: #008000;
}
.highlight-error {
color: #f00;
}
.highlight-operator {
color: #AA22FF;
font-weight: bold;
}
.highlight-meta {
color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
color: #00f;
}
.highlight-string-2 {
color: #f50;
}
.highlight-qualifier {
color: #555;
}
.highlight-bracket {
color: #997;
}
.highlight-tag {
color: #170;
}
.highlight-attribute {
color: #00c;
}
.highlight-header {
color: blue;
}
.highlight-quote {
color: #090;
}
.highlight-link {
color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
color: #008000;
font-weight: bold;
}
.cm-s-ipython span.cm-atom {
color: #88F;
}
.cm-s-ipython span.cm-number {
color: #080;
}
.cm-s-ipython span.cm-def {
color: #00f;
}
.cm-s-ipython span.cm-variable {
color: #000;
}
.cm-s-ipython span.cm-operator {
color: #AA22FF;
font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
color: #333333;
}
.cm-s-ipython span.cm-comment {
color: #408080;
font-style: italic;
}
.cm-s-ipython span.cm-string {
color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
color: #f50;
}
.cm-s-ipython span.cm-meta {
color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
color: #555;
}
.cm-s-ipython span.cm-builtin {
color: #008000;
}
.cm-s-ipython span.cm-bracket {
color: #997;
}
.cm-s-ipython span.cm-tag {
color: #170;
}
.cm-s-ipython span.cm-attribute {
color: #00c;
}
.cm-s-ipython span.cm-header {
color: blue;
}
.cm-s-ipython span.cm-quote {
color: #090;
}
.cm-s-ipython span.cm-link {
color: #00c;
}
.cm-s-ipython span.cm-error {
color: #f00;
}
.cm-s-ipython span.cm-tab {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
background-position: right;
background-repeat: no-repeat;
}
div.output_wrapper {
/* this position must be relative to enable descendents to be absolute within it */
position: relative;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
/* ideally, this would be max-height, but FF barfs all over that */
height: 24em;
/* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
width: 100%;
overflow: auto;
border-radius: 2px;
-webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
margin: 0px;
padding: 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
div.out_prompt_overlay {
height: 100%;
padding: 0px 0.4em;
position: absolute;
border-radius: 2px;
}
div.out_prompt_overlay:hover {
/* use inner shadow to get border that is computed the same on WebKit/FF */
-webkit-box-shadow: inset 0 0 1px #000;
box-shadow: inset 0 0 1px #000;
background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
padding: 0px;
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.output_area .MathJax_Display {
text-align: left !important;
}
div.output_area .rendered_html table {
margin-left: 0;
margin-right: 0;
}
div.output_area .rendered_html img {
margin-left: 0;
margin-right: 0;
}
div.output_area img,
div.output_area svg {
max-width: 100%;
height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
max-width: none;
}
/* This is needed to protect the pre formating from global settings such
as that of bootstrap */
.output {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
@media (max-width: 540px) {
div.output_area {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
div.output_area pre {
margin: 0;
padding: 0;
border: 0;
vertical-align: baseline;
color: black;
background-color: transparent;
border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
the prompt div. */
div.output_subarea {
overflow-x: auto;
padding: 0.4em;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
output types */
/* all text output has this class: */
div.output_text {
text-align: left;
color: #000;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
background: #fdd;
/* very light red background for stderr */
}
div.output_latex {
text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
padding: 0;
}
.js-error {
color: darkred;
}
/* raw_input styles */
div.raw_input_container {
line-height: 1.21429em;
padding-top: 5px;
}
pre.raw_input_prompt {
/* nothing needed here. */
}
input.raw_input {
font-family: monospace;
font-size: inherit;
color: inherit;
width: auto;
/* make sure input baseline aligns with prompt */
vertical-align: baseline;
/* padding + margin = 0.5em between prompt and cursor */
padding: 0em 0.25em;
margin: 0em 0.25em;
}
input.raw_input:focus {
box-shadow: none;
}
p.p-space {
margin-bottom: 10px;
}
div.output_unrecognized {
padding: 5px;
font-weight: bold;
color: red;
}
div.output_unrecognized a {
color: inherit;
text-decoration: none;
}
div.output_unrecognized a:hover {
color: inherit;
text-decoration: none;
}
.rendered_html {
color: #000;
/* any extras will just be numbers: */
}
.rendered_html em {
font-style: italic;
}
.rendered_html strong {
font-weight: bold;
}
.rendered_html u {
text-decoration: underline;
}
.rendered_html :link {
text-decoration: underline;
}
.rendered_html :visited {
text-decoration: underline;
}
.rendered_html h1 {
font-size: 185.7%;
margin: 1.08em 0 0 0;
font-weight: bold;
line-height: 1.0;
}
.rendered_html h2 {
font-size: 157.1%;
margin: 1.27em 0 0 0;
font-weight: bold;
line-height: 1.0;
}
.rendered_html h3 {
font-size: 128.6%;
margin: 1.55em 0 0 0;
font-weight: bold;
line-height: 1.0;
}
.rendered_html h4 {
font-size: 100%;
margin: 2em 0 0 0;
font-weight: bold;
line-height: 1.0;
}
.rendered_html h5 {
font-size: 100%;
margin: 2em 0 0 0;
font-weight: bold;
line-height: 1.0;
font-style: italic;
}
.rendered_html h6 {
font-size: 100%;
margin: 2em 0 0 0;
font-weight: bold;
line-height: 1.0;
font-style: italic;
}
.rendered_html h1:first-child {
margin-top: 0.538em;
}
.rendered_html h2:first-child {
margin-top: 0.636em;
}
.rendered_html h3:first-child {
margin-top: 0.777em;
}
.rendered_html h4:first-child {
margin-top: 1em;
}
.rendered_html h5:first-child {
margin-top: 1em;
}
.rendered_html h6:first-child {
margin-top: 1em;
}
.rendered_html ul {
list-style: disc;
margin: 0em 2em;
padding-left: 0px;
}
.rendered_html ul ul {
list-style: square;
margin: 0em 2em;
}
.rendered_html ul ul ul {
list-style: circle;
margin: 0em 2em;
}
.rendered_html ol {
list-style: decimal;
margin: 0em 2em;
padding-left: 0px;
}
.rendered_html ol ol {
list-style: upper-alpha;
margin: 0em 2em;
}
.rendered_html ol ol ol {
list-style: lower-alpha;
margin: 0em 2em;
}
.rendered_html ol ol ol ol {
list-style: lower-roman;
margin: 0em 2em;
}
.rendered_html ol ol ol ol ol {
list-style: decimal;
margin: 0em 2em;
}
.rendered_html * + ul {
margin-top: 1em;
}
.rendered_html * + ol {
margin-top: 1em;
}
.rendered_html hr {
color: black;
background-color: black;
}
.rendered_html pre {
margin: 1em 2em;
}
.rendered_html pre,
.rendered_html code {
border: 0;
background-color: #fff;
color: #000;
font-size: 100%;
padding: 0px;
}
.rendered_html blockquote {
margin: 1em 2em;
}
.rendered_html table {
margin-left: auto;
margin-right: auto;
border: 1px solid black;
border-collapse: collapse;
}
.rendered_html tr,
.rendered_html th,
.rendered_html td {
border: 1px solid black;
border-collapse: collapse;
margin: 1em 2em;
}
.rendered_html td,
.rendered_html th {
text-align: left;
vertical-align: middle;
padding: 4px;
}
.rendered_html th {
font-weight: bold;
}
.rendered_html * + table {
margin-top: 1em;
}
.rendered_html p {
text-align: left;
}
.rendered_html * + p {
margin-top: 1em;
}
.rendered_html img {
display: block;
margin-left: auto;
margin-right: auto;
}
.rendered_html * + img {
margin-top: 1em;
}
.rendered_html img,
.rendered_html svg {
max-width: 100%;
height: auto;
}
.rendered_html img.unconfined,
.rendered_html svg.unconfined {
max-width: none;
}
div.text_cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.text_cell > div.prompt {
display: none;
}
}
div.text_cell_render {
/*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
outline: none;
resize: none;
width: inherit;
border-style: none;
padding: 0.5em 0.5em 0.5em 0.4em;
color: #000;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
a.anchor-link:link {
text-decoration: none;
padding: 0px 20px;
visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
visibility: visible;
}
.text_cell.rendered .input_area {
display: none;
}
.text_cell.rendered .rendered_html {
overflow-x: auto;
overflow-y: hidden;
}
.text_cell.unrendered .text_cell_render {
display: none;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
font-weight: bold;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
font-size: 185.7%;
}
.cm-header-2 {
font-size: 157.1%;
}
.cm-header-3 {
font-size: 128.6%;
}
.cm-header-4 {
font-size: 110%;
}
.cm-header-5 {
font-size: 100%;
font-style: italic;
}
.cm-header-6 {
font-size: 100%;
font-style: italic;
}
/*!
*
* IPython notebook webapp
*
*/
@media (max-width: 767px) {
.notebook_app {
padding-left: 0px;
padding-right: 0px;
}
}
#ipython-main-app {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
height: 100%;
}
div#notebook_panel {
margin: 0px;
padding: 0px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
height: 100%;
}
div#notebook {
font-size: 14px;
line-height: 20px;
overflow-y: hidden;
overflow-x: auto;
width: 100%;
/* This spaces the page away from the edge of the notebook area */
padding-top: 20px;
margin: 0px;
outline: none;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
min-height: 100%;
}
@media not print {
#notebook-container {
padding: 15px;
background-color: #fff;
min-height: 0;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
}
@media print {
#notebook-container {
width: 100%;
}
}
div.ui-widget-content {
border: 1px solid #ababab;
outline: none;
}
pre.dialog {
background-color: #f7f7f7;
border: 1px solid #ddd;
border-radius: 2px;
padding: 0.4em;
padding-left: 2em;
}
p.dialog {
padding: 0.2em;
}
/* Word-wrap output correctly. This is the CSS3 spelling, though Firefox seems
to not honor it correctly. Webkit browsers (Chrome, rekonq, Safari) do.
*/
pre,
code,
kbd,
samp {
white-space: pre-wrap;
}
#fonttest {
font-family: monospace;
}
p {
margin-bottom: 0;
}
.end_space {
min-height: 100px;
transition: height .2s ease;
}
.notebook_app > #header {
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
@media not print {
.notebook_app {
background-color: #EEE;
}
}
kbd {
border-style: solid;
border-width: 1px;
box-shadow: none;
margin: 2px;
padding-left: 2px;
padding-right: 2px;
padding-top: 1px;
padding-bottom: 1px;
}
/* CSS for the cell toolbar */
.celltoolbar {
border: thin solid #CFCFCF;
border-bottom: none;
background: #EEE;
border-radius: 2px 2px 0px 0px;
width: 100%;
height: 29px;
padding-right: 4px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
/* Old browsers */
-webkit-box-pack: end;
-moz-box-pack: end;
box-pack: end;
/* Modern browsers */
justify-content: flex-end;
display: -webkit-flex;
}
@media print {
.celltoolbar {
display: none;
}
}
.ctb_hideshow {
display: none;
vertical-align: bottom;
}
/* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
Cell toolbars are only shown when the ctb_global_show class is also set.
*/
.ctb_global_show .ctb_show.ctb_hideshow {
display: block;
}
.ctb_global_show .ctb_show + .input_area,
.ctb_global_show .ctb_show + div.text_cell_input,
.ctb_global_show .ctb_show ~ div.text_cell_render {
border-top-right-radius: 0px;
border-top-left-radius: 0px;
}
.ctb_global_show .ctb_show ~ div.text_cell_render {
border: 1px solid #cfcfcf;
}
.celltoolbar {
font-size: 87%;
padding-top: 3px;
}
.celltoolbar select {
display: block;
width: 100%;
height: 32px;
padding: 6px 12px;
font-size: 13px;
line-height: 1.42857143;
color: #555555;
background-color: #fff;
background-image: none;
border: 1px solid #ccc;
border-radius: 2px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
width: inherit;
font-size: inherit;
height: 22px;
padding: 0px;
display: inline-block;
}
.celltoolbar select:focus {
border-color: #66afe9;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.celltoolbar select::-moz-placeholder {
color: #999;
opacity: 1;
}
.celltoolbar select:-ms-input-placeholder {
color: #999;
}
.celltoolbar select::-webkit-input-placeholder {
color: #999;
}
.celltoolbar select::-ms-expand {
border: 0;
background-color: transparent;
}
.celltoolbar select[disabled],
.celltoolbar select[readonly],
fieldset[disabled] .celltoolbar select {
background-color: #eeeeee;
opacity: 1;
}
.celltoolbar select[disabled],
fieldset[disabled] .celltoolbar select {
cursor: not-allowed;
}
textarea.celltoolbar select {
height: auto;
}
select.celltoolbar select {
height: 30px;
line-height: 30px;
}
textarea.celltoolbar select,
select[multiple].celltoolbar select {
height: auto;
}
.celltoolbar label {
margin-left: 5px;
margin-right: 5px;
}
.completions {
position: absolute;
z-index: 110;
overflow: hidden;
border: 1px solid #ababab;
border-radius: 2px;
-webkit-box-shadow: 0px 6px 10px -1px #adadad;
box-shadow: 0px 6px 10px -1px #adadad;
line-height: 1;
}
.completions select {
background: white;
outline: none;
border: none;
padding: 0px;
margin: 0px;
overflow: auto;
font-family: monospace;
font-size: 110%;
color: #000;
width: auto;
}
.completions select option.context {
color: #286090;
}
#kernel_logo_widget {
float: right !important;
float: right;
}
#kernel_logo_widget .current_kernel_logo {
display: none;
margin-top: -1px;
margin-bottom: -1px;
width: 32px;
height: 32px;
}
#menubar {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
margin-top: 1px;
}
#menubar .navbar {
border-top: 1px;
border-radius: 0px 0px 2px 2px;
margin-bottom: 0px;
}
#menubar .navbar-toggle {
float: left;
padding-top: 7px;
padding-bottom: 7px;
border: none;
}
#menubar .navbar-collapse {
clear: left;
}
.nav-wrapper {
border-bottom: 1px solid #e7e7e7;
}
i.menu-icon {
padding-top: 4px;
}
ul#help_menu li a {
overflow: hidden;
padding-right: 2.2em;
}
ul#help_menu li a i {
margin-right: -1.2em;
}
.dropdown-submenu {
position: relative;
}
.dropdown-submenu > .dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -1px;
}
.dropdown-submenu:hover > .dropdown-menu {
display: block;
}
.dropdown-submenu > a:after {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
display: block;
content: "\f0da";
float: right;
color: #333333;
margin-top: 2px;
margin-right: -10px;
}
.dropdown-submenu > a:after.pull-left {
margin-right: .3em;
}
.dropdown-submenu > a:after.pull-right {
margin-left: .3em;
}
.dropdown-submenu:hover > a:after {
color: #262626;
}
.dropdown-submenu.pull-left {
float: none;
}
.dropdown-submenu.pull-left > .dropdown-menu {
left: -100%;
margin-left: 10px;
}
#notification_area {
float: right !important;
float: right;
z-index: 10;
}
.indicator_area {
float: right !important;
float: right;
color: #777;
margin-left: 5px;
margin-right: 5px;
width: 11px;
z-index: 10;
text-align: center;
width: auto;
}
#kernel_indicator {
float: right !important;
float: right;
color: #777;
margin-left: 5px;
margin-right: 5px;
width: 11px;
z-index: 10;
text-align: center;
width: auto;
border-left: 1px solid;
}
#kernel_indicator .kernel_indicator_name {
padding-left: 5px;
padding-right: 5px;
}
#modal_indicator {
float: right !important;
float: right;
color: #777;
margin-left: 5px;
margin-right: 5px;
width: 11px;
z-index: 10;
text-align: center;
width: auto;
}
#readonly-indicator {
float: right !important;
float: right;
color: #777;
margin-left: 5px;
margin-right: 5px;
width: 11px;
z-index: 10;
text-align: center;
width: auto;
margin-top: 2px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
display: none;
}
.modal_indicator:before {
width: 1.28571429em;
text-align: center;
}
.edit_mode .modal_indicator:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f040";
}
.edit_mode .modal_indicator:before.pull-left {
margin-right: .3em;
}
.edit_mode .modal_indicator:before.pull-right {
margin-left: .3em;
}
.command_mode .modal_indicator:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: ' ';
}
.command_mode .modal_indicator:before.pull-left {
margin-right: .3em;
}
.command_mode .modal_indicator:before.pull-right {
margin-left: .3em;
}
.kernel_idle_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f10c";
}
.kernel_idle_icon:before.pull-left {
margin-right: .3em;
}
.kernel_idle_icon:before.pull-right {
margin-left: .3em;
}
.kernel_busy_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f111";
}
.kernel_busy_icon:before.pull-left {
margin-right: .3em;
}
.kernel_busy_icon:before.pull-right {
margin-left: .3em;
}
.kernel_dead_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f1e2";
}
.kernel_dead_icon:before.pull-left {
margin-right: .3em;
}
.kernel_dead_icon:before.pull-right {
margin-left: .3em;
}
.kernel_disconnected_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f127";
}
.kernel_disconnected_icon:before.pull-left {
margin-right: .3em;
}
.kernel_disconnected_icon:before.pull-right {
margin-left: .3em;
}
.notification_widget {
color: #777;
z-index: 10;
background: rgba(240, 240, 240, 0.5);
margin-right: 4px;
color: #333;
background-color: #fff;
border-color: #ccc;
}
.notification_widget:focus,
.notification_widget.focus {
color: #333;
background-color: #e6e6e6;
border-color: #8c8c8c;
}
.notification_widget:hover {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
.notification_widget:active:hover,
.notification_widget.active:hover,
.open > .dropdown-toggle.notification_widget:hover,
.notification_widget:active:focus,
.notification_widget.active:focus,
.open > .dropdown-toggle.notification_widget:focus,
.notification_widget:active.focus,
.notification_widget.active.focus,
.open > .dropdown-toggle.notification_widget.focus {
color: #333;
background-color: #d4d4d4;
border-color: #8c8c8c;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
background-image: none;
}
.notification_widget.disabled:hover,
.notification_widget[disabled]:hover,
fieldset[disabled] .notification_widget:hover,
.notification_widget.disabled:focus,
.notification_widget[disabled]:focus,
fieldset[disabled] .notification_widget:focus,
.notification_widget.disabled.focus,
.notification_widget[disabled].focus,
fieldset[disabled] .notification_widget.focus {
background-color: #fff;
border-color: #ccc;
}
.notification_widget .badge {
color: #fff;
background-color: #333;
}
.notification_widget.warning {
color: #fff;
background-color: #f0ad4e;
border-color: #eea236;
}
.notification_widget.warning:focus,
.notification_widget.warning.focus {
color: #fff;
background-color: #ec971f;
border-color: #985f0d;
}
.notification_widget.warning:hover {
color: #fff;
background-color: #ec971f;
border-color: #d58512;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
color: #fff;
background-color: #ec971f;
border-color: #d58512;
}
.notification_widget.warning:active:hover,
.notification_widget.warning.active:hover,
.open > .dropdown-toggle.notification_widget.warning:hover,
.notification_widget.warning:active:focus,
.notification_widget.warning.active:focus,
.open > .dropdown-toggle.notification_widget.warning:focus,
.notification_widget.warning:active.focus,
.notification_widget.warning.active.focus,
.open > .dropdown-toggle.notification_widget.warning.focus {
color: #fff;
background-color: #d58512;
border-color: #985f0d;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
background-image: none;
}
.notification_widget.warning.disabled:hover,
.notification_widget.warning[disabled]:hover,
fieldset[disabled] .notification_widget.warning:hover,
.notification_widget.warning.disabled:focus,
.notification_widget.warning[disabled]:focus,
fieldset[disabled] .notification_widget.warning:focus,
.notification_widget.warning.disabled.focus,
.notification_widget.warning[disabled].focus,
fieldset[disabled] .notification_widget.warning.focus {
background-color: #f0ad4e;
border-color: #eea236;
}
.notification_widget.warning .badge {
color: #f0ad4e;
background-color: #fff;
}
.notification_widget.success {
color: #fff;
background-color: #5cb85c;
border-color: #4cae4c;
}
.notification_widget.success:focus,
.notification_widget.success.focus {
color: #fff;
background-color: #449d44;
border-color: #255625;
}
.notification_widget.success:hover {
color: #fff;
background-color: #449d44;
border-color: #398439;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
color: #fff;
background-color: #449d44;
border-color: #398439;
}
.notification_widget.success:active:hover,
.notification_widget.success.active:hover,
.open > .dropdown-toggle.notification_widget.success:hover,
.notification_widget.success:active:focus,
.notification_widget.success.active:focus,
.open > .dropdown-toggle.notification_widget.success:focus,
.notification_widget.success:active.focus,
.notification_widget.success.active.focus,
.open > .dropdown-toggle.notification_widget.success.focus {
color: #fff;
background-color: #398439;
border-color: #255625;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
background-image: none;
}
.notification_widget.success.disabled:hover,
.notification_widget.success[disabled]:hover,
fieldset[disabled] .notification_widget.success:hover,
.notification_widget.success.disabled:focus,
.notification_widget.success[disabled]:focus,
fieldset[disabled] .notification_widget.success:focus,
.notification_widget.success.disabled.focus,
.notification_widget.success[disabled].focus,
fieldset[disabled] .notification_widget.success.focus {
background-color: #5cb85c;
border-color: #4cae4c;
}
.notification_widget.success .badge {
color: #5cb85c;
background-color: #fff;
}
.notification_widget.info {
color: #fff;
background-color: #5bc0de;
border-color: #46b8da;
}
.notification_widget.info:focus,
.notification_widget.info.focus {
color: #fff;
background-color: #31b0d5;
border-color: #1b6d85;
}
.notification_widget.info:hover {
color: #fff;
background-color: #31b0d5;
border-color: #269abc;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
color: #fff;
background-color: #31b0d5;
border-color: #269abc;
}
.notification_widget.info:active:hover,
.notification_widget.info.active:hover,
.open > .dropdown-toggle.notification_widget.info:hover,
.notification_widget.info:active:focus,
.notification_widget.info.active:focus,
.open > .dropdown-toggle.notification_widget.info:focus,
.notification_widget.info:active.focus,
.notification_widget.info.active.focus,
.open > .dropdown-toggle.notification_widget.info.focus {
color: #fff;
background-color: #269abc;
border-color: #1b6d85;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
background-image: none;
}
.notification_widget.info.disabled:hover,
.notification_widget.info[disabled]:hover,
fieldset[disabled] .notification_widget.info:hover,
.notification_widget.info.disabled:focus,
.notification_widget.info[disabled]:focus,
fieldset[disabled] .notification_widget.info:focus,
.notification_widget.info.disabled.focus,
.notification_widget.info[disabled].focus,
fieldset[disabled] .notification_widget.info.focus {
background-color: #5bc0de;
border-color: #46b8da;
}
.notification_widget.info .badge {
color: #5bc0de;
background-color: #fff;
}
.notification_widget.danger {
color: #fff;
background-color: #d9534f;
border-color: #d43f3a;
}
.notification_widget.danger:focus,
.notification_widget.danger.focus {
color: #fff;
background-color: #c9302c;
border-color: #761c19;
}
.notification_widget.danger:hover {
color: #fff;
background-color: #c9302c;
border-color: #ac2925;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
color: #fff;
background-color: #c9302c;
border-color: #ac2925;
}
.notification_widget.danger:active:hover,
.notification_widget.danger.active:hover,
.open > .dropdown-toggle.notification_widget.danger:hover,
.notification_widget.danger:active:focus,
.notification_widget.danger.active:focus,
.open > .dropdown-toggle.notification_widget.danger:focus,
.notification_widget.danger:active.focus,
.notification_widget.danger.active.focus,
.open > .dropdown-toggle.notification_widget.danger.focus {
color: #fff;
background-color: #ac2925;
border-color: #761c19;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
background-image: none;
}
.notification_widget.danger.disabled:hover,
.notification_widget.danger[disabled]:hover,
fieldset[disabled] .notification_widget.danger:hover,
.notification_widget.danger.disabled:focus,
.notification_widget.danger[disabled]:focus,
fieldset[disabled] .notification_widget.danger:focus,
.notification_widget.danger.disabled.focus,
.notification_widget.danger[disabled].focus,
fieldset[disabled] .notification_widget.danger.focus {
background-color: #d9534f;
border-color: #d43f3a;
}
.notification_widget.danger .badge {
color: #d9534f;
background-color: #fff;
}
div#pager {
background-color: #fff;
font-size: 14px;
line-height: 20px;
overflow: hidden;
display: none;
position: fixed;
bottom: 0px;
width: 100%;
max-height: 50%;
padding-top: 8px;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
/* Display over codemirror */
z-index: 100;
/* Hack which prevents jquery ui resizable from changing top. */
top: auto !important;
}
div#pager pre {
line-height: 1.21429em;
color: #000;
background-color: #f7f7f7;
padding: 0.4em;
}
div#pager #pager-button-area {
position: absolute;
top: 8px;
right: 20px;
}
div#pager #pager-contents {
position: relative;
overflow: auto;
width: 100%;
height: 100%;
}
div#pager #pager-contents #pager-container {
position: relative;
padding: 15px 0px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
div#pager .ui-resizable-handle {
top: 0px;
height: 8px;
background: #f7f7f7;
border-top: 1px solid #cfcfcf;
border-bottom: 1px solid #cfcfcf;
/* This injects handle bars (a short, wide = symbol) for
the resize handle. */
}
div#pager .ui-resizable-handle::after {
content: '';
top: 2px;
left: 50%;
height: 3px;
width: 30px;
margin-left: -15px;
position: absolute;
border-top: 1px solid #cfcfcf;
}
.quickhelp {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
line-height: 1.8em;
}
.shortcut_key {
display: inline-block;
width: 21ex;
text-align: right;
font-family: monospace;
}
.shortcut_descr {
display: inline-block;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
span.save_widget {
margin-top: 6px;
}
span.save_widget span.filename {
height: 1em;
line-height: 1em;
padding: 3px;
margin-left: 16px;
border: none;
font-size: 146.5%;
border-radius: 2px;
}
span.save_widget span.filename:hover {
background-color: #e6e6e6;
}
span.checkpoint_status,
span.autosave_status {
font-size: small;
}
@media (max-width: 767px) {
span.save_widget {
font-size: small;
}
span.checkpoint_status,
span.autosave_status {
display: none;
}
}
@media (min-width: 768px) and (max-width: 991px) {
span.checkpoint_status {
display: none;
}
span.autosave_status {
font-size: x-small;
}
}
.toolbar {
padding: 0px;
margin-left: -5px;
margin-top: 2px;
margin-bottom: 5px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.toolbar select,
.toolbar label {
width: auto;
vertical-align: middle;
margin-right: 2px;
margin-bottom: 0px;
display: inline;
font-size: 92%;
margin-left: 0.3em;
margin-right: 0.3em;
padding: 0px;
padding-top: 3px;
}
.toolbar .btn {
padding: 2px 8px;
}
.toolbar .btn-group {
margin-top: 0px;
margin-left: 5px;
}
#maintoolbar {
margin-bottom: -3px;
margin-top: -8px;
border: 0px;
min-height: 27px;
margin-left: 0px;
padding-top: 11px;
padding-bottom: 3px;
}
#maintoolbar .navbar-text {
float: none;
vertical-align: middle;
text-align: right;
margin-left: 5px;
margin-right: 0px;
margin-top: 0px;
}
.select-xs {
height: 24px;
}
.pulse,
.dropdown-menu > li > a.pulse,
li.pulse > a.dropdown-toggle,
li.pulse.open > a.dropdown-toggle {
background-color: #F37626;
color: white;
}
/**
* Primary styles
*
* Author: Jupyter Development Team
*/
/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
* of chance of beeing generated from the ../less/[samename].less file, you can
* try to get back the less file by reverting somme commit in history
**/
/*
* We'll try to get something pretty, so we
* have some strange css to have the scroll bar on
* the left with fix button on the top right of the tooltip
*/
@-moz-keyframes fadeOut {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@-webkit-keyframes fadeOut {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@-moz-keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@-webkit-keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
/*properties of tooltip after "expand"*/
.bigtooltip {
overflow: auto;
height: 200px;
-webkit-transition-property: height;
-webkit-transition-duration: 500ms;
-moz-transition-property: height;
-moz-transition-duration: 500ms;
transition-property: height;
transition-duration: 500ms;
}
/*properties of tooltip before "expand"*/
.smalltooltip {
-webkit-transition-property: height;
-webkit-transition-duration: 500ms;
-moz-transition-property: height;
-moz-transition-duration: 500ms;
transition-property: height;
transition-duration: 500ms;
text-overflow: ellipsis;
overflow: hidden;
height: 80px;
}
.tooltipbuttons {
position: absolute;
padding-right: 15px;
top: 0px;
right: 0px;
}
.tooltiptext {
/*avoid the button to overlap on some docstring*/
padding-right: 30px;
}
.ipython_tooltip {
max-width: 700px;
/*fade-in animation when inserted*/
-webkit-animation: fadeOut 400ms;
-moz-animation: fadeOut 400ms;
animation: fadeOut 400ms;
-webkit-animation: fadeIn 400ms;
-moz-animation: fadeIn 400ms;
animation: fadeIn 400ms;
vertical-align: middle;
background-color: #f7f7f7;
overflow: visible;
border: #ababab 1px solid;
outline: none;
padding: 3px;
margin: 0px;
padding-left: 7px;
font-family: monospace;
min-height: 50px;
-moz-box-shadow: 0px 6px 10px -1px #adadad;
-webkit-box-shadow: 0px 6px 10px -1px #adadad;
box-shadow: 0px 6px 10px -1px #adadad;
border-radius: 2px;
position: absolute;
z-index: 1000;
}
.ipython_tooltip a {
float: right;
}
.ipython_tooltip .tooltiptext pre {
border: 0;
border-radius: 0;
font-size: 100%;
background-color: #f7f7f7;
}
.pretooltiparrow {
left: 0px;
margin: 0px;
top: -16px;
width: 40px;
height: 16px;
overflow: hidden;
position: absolute;
}
.pretooltiparrow:before {
background-color: #f7f7f7;
border: 1px #ababab solid;
z-index: 11;
content: "";
position: absolute;
left: 15px;
top: 10px;
width: 25px;
height: 25px;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
}
ul.typeahead-list i {
margin-left: -10px;
width: 18px;
}
ul.typeahead-list {
max-height: 80vh;
overflow: auto;
}
ul.typeahead-list > li > a {
/** Firefox bug **/
/* see https://github.com/jupyter/notebook/issues/559 */
white-space: normal;
}
.cmd-palette .modal-body {
padding: 7px;
}
.cmd-palette form {
background: white;
}
.cmd-palette input {
outline: none;
}
.no-shortcut {
display: none;
}
.command-shortcut:before {
content: "(command)";
padding-right: 3px;
color: #777777;
}
.edit-shortcut:before {
content: "(edit)";
padding-right: 3px;
color: #777777;
}
#find-and-replace #replace-preview .match,
#find-and-replace #replace-preview .insert {
background-color: #BBDEFB;
border-color: #90CAF9;
border-style: solid;
border-width: 1px;
border-radius: 0px;
}
#find-and-replace #replace-preview .replace .match {
background-color: #FFCDD2;
border-color: #EF9A9A;
border-radius: 0px;
}
#find-and-replace #replace-preview .replace .insert {
background-color: #C8E6C9;
border-color: #A5D6A7;
border-radius: 0px;
}
#find-and-replace #replace-preview {
max-height: 60vh;
overflow: auto;
}
#find-and-replace #replace-preview pre {
padding: 5px 10px;
}
.terminal-app {
background: #EEE;
}
.terminal-app #header {
background: #fff;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.terminal-app .terminal {
width: 100%;
float: left;
font-family: monospace;
color: white;
background: black;
padding: 0.4em;
border-radius: 2px;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
}
.terminal-app .terminal,
.terminal-app .terminal dummy-screen {
line-height: 1em;
font-size: 14px;
}
.terminal-app .terminal .xterm-rows {
padding: 10px;
}
.terminal-app .terminal-cursor {
color: black;
background: white;
}
.terminal-app #terminado-container {
margin-top: 20px;
}
/*# sourceMappingURL=style.min.css.map */
</style>
<style type="text/css">
.highlight .hll { background-color: #ffffcc }
.highlight { background: #f8f8f8; }
.highlight .c { color: #408080; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008000 } /* Keyword.Pseudo */
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #B00040 } /* Keyword.Type */
.highlight .m { color: #666666 } /* Literal.Number */
.highlight .s { color: #BA2121 } /* Literal.String */
.highlight .na { color: #7D9029 } /* Name.Attribute */
.highlight .nb { color: #008000 } /* Name.Builtin */
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight .no { color: #880000 } /* Name.Constant */
.highlight .nd { color: #AA22FF } /* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0000FF } /* Name.Function */
.highlight .nl { color: #A0A000 } /* Name.Label */
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #19177C } /* Name.Variable */
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #666666 } /* Literal.Number.Bin */
.highlight .mf { color: #666666 } /* Literal.Number.Float */
.highlight .mh { color: #666666 } /* Literal.Number.Hex */
.highlight .mi { color: #666666 } /* Literal.Number.Integer */
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight .sx { color: #008000 } /* Literal.String.Other */
.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight .ss { color: #19177C } /* Literal.String.Symbol */
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0000FF } /* Name.Function.Magic */
.highlight .vc { color: #19177C } /* Name.Variable.Class */
.highlight .vg { color: #19177C } /* Name.Variable.Global */
.highlight .vi { color: #19177C } /* Name.Variable.Instance */
.highlight .vm { color: #19177C } /* Name.Variable.Magic */
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
</style>
<style type="text/css">
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }
.ansi-bold { font-weight: bold; }
</style>
<style type="text/css">
/* Overrides of notebook CSS for static HTML export */
body {
overflow: visible;
padding: 8px;
}
div#notebook {
overflow: visible;
border-top: none;
}
@media print {
div.cell {
display: block;
page-break-inside: avoid;
}
div.output_wrapper {
display: block;
page-break-inside: avoid;
}
div.output {
display: block;
page-break-inside: avoid;
}
}
</style>
<!-- Custom stylesheet, it must be in the same directory as the html file -->
<link rel="stylesheet" href="custom.css">
<!-- Loading mathjax macro -->
<!-- Load mathjax -->
<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script>
<!-- MathJax configuration -->
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true,
processEnvironments: true
},
// Center justify equations in code and markdown cells. Elsewhere
// we use CSS to left justify single line equations in code cells.
displayAlign: 'center',
"HTML-CSS": {
styles: {'.MathJax_Display': {"margin": 0}},
linebreaks: { automatic: true }
}
});
</script>
<!-- End of mathjax configuration --></head>
<body>
<div tabindex="-1" id="notebook" class="border-box-sizing">
<div class="container" id="notebook-container">
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="Image-Classification">Image Classification<a class="anchor-link" href="#Image-Classification">&#182;</a></h1><p>In this project, you'll classify images from the <a href="https://www.cs.toronto.edu/~kriz/cifar.html">CIFAR-10 dataset</a>. The dataset consists of airplanes, dogs, cats, and other objects. You'll preprocess the images, then train a convolutional neural network on all the samples. The images need to be normalized and the labels need to be one-hot encoded. You'll get to apply what you learned and build a convolutional, max pooling, dropout, and fully connected layers. At the end, you'll get to see your neural network's predictions on the sample images.</p>
<h2 id="Get-the-Data">Get the Data<a class="anchor-link" href="#Get-the-Data">&#182;</a></h2><p>Run the following cell to download the <a href="https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz">CIFAR-10 dataset for python</a>.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[1]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="kn">from</span> <span class="nn">urllib.request</span> <span class="k">import</span> <span class="n">urlretrieve</span>
<span class="kn">from</span> <span class="nn">os.path</span> <span class="k">import</span> <span class="n">isfile</span><span class="p">,</span> <span class="n">isdir</span>
<span class="kn">from</span> <span class="nn">tqdm</span> <span class="k">import</span> <span class="n">tqdm</span>
<span class="kn">import</span> <span class="nn">problem_unittests</span> <span class="k">as</span> <span class="nn">tests</span>
<span class="kn">import</span> <span class="nn">tarfile</span>
<span class="n">cifar10_dataset_folder_path</span> <span class="o">=</span> <span class="s1">&#39;cifar-10-batches-py&#39;</span>
<span class="k">class</span> <span class="nc">DLProgress</span><span class="p">(</span><span class="n">tqdm</span><span class="p">):</span>
<span class="n">last_block</span> <span class="o">=</span> <span class="mi">0</span>
<span class="k">def</span> <span class="nf">hook</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">block_num</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">block_size</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">total_size</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">total</span> <span class="o">=</span> <span class="n">total_size</span>
<span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">((</span><span class="n">block_num</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">last_block</span><span class="p">)</span> <span class="o">*</span> <span class="n">block_size</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">last_block</span> <span class="o">=</span> <span class="n">block_num</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">isfile</span><span class="p">(</span><span class="s1">&#39;cifar-10-python.tar.gz&#39;</span><span class="p">):</span>
<span class="k">with</span> <span class="n">DLProgress</span><span class="p">(</span><span class="n">unit</span><span class="o">=</span><span class="s1">&#39;B&#39;</span><span class="p">,</span> <span class="n">unit_scale</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;CIFAR-10 Dataset&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">pbar</span><span class="p">:</span>
<span class="n">urlretrieve</span><span class="p">(</span>
<span class="s1">&#39;https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz&#39;</span><span class="p">,</span>
<span class="s1">&#39;cifar-10-python.tar.gz&#39;</span><span class="p">,</span>
<span class="n">pbar</span><span class="o">.</span><span class="n">hook</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">isdir</span><span class="p">(</span><span class="n">cifar10_dataset_folder_path</span><span class="p">):</span>
<span class="k">with</span> <span class="n">tarfile</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;cifar-10-python.tar.gz&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">tar</span><span class="p">:</span>
<span class="n">tar</span><span class="o">.</span><span class="n">extractall</span><span class="p">()</span>
<span class="n">tar</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_folder_path</span><span class="p">(</span><span class="n">cifar10_dataset_folder_path</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>All files found!
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Explore-the-Data">Explore the Data<a class="anchor-link" href="#Explore-the-Data">&#182;</a></h2><p>The dataset is broken into batches to prevent your machine from running out of memory. The CIFAR-10 dataset consists of 5 batches, named <code>data_batch_1</code>, <code>data_batch_2</code>, etc.. Each batch contains the labels and images that are one of the following:</p>
<ul>
<li>airplane</li>
<li>automobile</li>
<li>bird</li>
<li>cat</li>
<li>deer</li>
<li>dog</li>
<li>frog</li>
<li>horse</li>
<li>ship</li>
<li>truck</li>
</ul>
<p>Understanding a dataset is part of making predictions on the data. Play around with the code cell below by changing the <code>batch_id</code> and <code>sample_id</code>. The <code>batch_id</code> is the id for a batch (1-5). The <code>sample_id</code> is the id for a image and label pair in the batch.</p>
<p>Ask yourself "What are all possible labels?", "What is the range of values for the image data?", "Are the labels in order or random?". Answers to questions like these will help you preprocess the data and end up with better predictions.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[2]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">matplotlib</span> inline
<span class="o">%</span><span class="k">config</span> InlineBackend.figure_format = &#39;retina&#39;
<span class="kn">import</span> <span class="nn">helper</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="c1"># Explore the dataset</span>
<span class="n">batch_id</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">sample_id</span> <span class="o">=</span> <span class="mi">5</span>
<span class="n">helper</span><span class="o">.</span><span class="n">display_stats</span><span class="p">(</span><span class="n">cifar10_dataset_folder_path</span><span class="p">,</span> <span class="n">batch_id</span><span class="p">,</span> <span class="n">sample_id</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>
Stats of batch 1:
Samples: 10000
Label Counts: {0: 1005, 1: 974, 2: 1032, 3: 1016, 4: 999, 5: 937, 6: 1030, 7: 1001, 8: 1025, 9: 981}
First 20 Labels: [6, 9, 9, 4, 1, 1, 2, 7, 8, 3, 4, 7, 7, 2, 9, 9, 9, 3, 2, 6]
Example of Image 5:
Image - Min Value: 0 Max Value: 252
Image - Shape: (32, 32, 3)
Label - Label Id: 1 Name: automobile
</pre>
</div>
</div>
<div class="output_area">
<div class="prompt"></div>
<div class="output_png output_subarea ">
<img src="data:image/png;base64,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
rkJggg==
"
width=253
height=250
>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Implement-Preprocess-Functions">Implement Preprocess Functions<a class="anchor-link" href="#Implement-Preprocess-Functions">&#182;</a></h2><h3 id="Normalize">Normalize<a class="anchor-link" href="#Normalize">&#182;</a></h3><p>In the cell below, implement the <code>normalize</code> function to take in image data, <code>x</code>, and return it as a normalized Numpy array. The values should be in the range of 0 to 1, inclusive. The return object should be the same shape as <code>x</code>.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[3]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">normalize</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Normalize a list of sample image data in the range of 0 to 1</span>
<span class="sd"> : x: List of image data. The image shape is (32, 32, 3)</span>
<span class="sd"> : return: Numpy array of normalize data</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># TODO: Implement Function</span>
<span class="k">return</span> <span class="n">x</span><span class="o">/</span><span class="mi">255</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_normalize</span><span class="p">(</span><span class="n">normalize</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Tests Passed
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="One-hot-encode">One-hot encode<a class="anchor-link" href="#One-hot-encode">&#182;</a></h3><p>Just like the previous code cell, you'll be implementing a function for preprocessing. This time, you'll implement the <code>one_hot_encode</code> function. The input, <code>x</code>, are a list of labels. Implement the function to return the list of labels as One-Hot encoded Numpy array. The possible values for labels are 0 to 9. The one-hot encoding function should return the same encoding for each value between each call to <code>one_hot_encode</code>. Make sure to save the map of encodings outside the function.</p>
<p>Hint: Don't reinvent the wheel.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[4]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">one_hot_encode</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> One hot encode a list of sample labels. Return a one-hot encoded vector for each label.</span>
<span class="sd"> : x: List of sample Labels</span>
<span class="sd"> : return: Numpy array of one-hot encoded labels</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># TODO: Implement Function</span>
<span class="n">labels</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="nb">len</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="mi">10</span><span class="p">))</span>
<span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">label</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">labels</span><span class="p">):</span>
<span class="n">label</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>
<span class="k">return</span> <span class="n">labels</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_one_hot_encode</span><span class="p">(</span><span class="n">one_hot_encode</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Tests Passed
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Randomize-Data">Randomize Data<a class="anchor-link" href="#Randomize-Data">&#182;</a></h3><p>As you saw from exploring the data above, the order of the samples are randomized. It doesn't hurt to randomize it again, but you don't need to for this dataset.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Preprocess-all-the-data-and-save-it">Preprocess all the data and save it<a class="anchor-link" href="#Preprocess-all-the-data-and-save-it">&#182;</a></h2><p>Running the code cell below will preprocess all the CIFAR-10 data and save it to file. The code below also uses 10% of the training data for validation.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[5]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="c1"># Preprocess Training, Validation, and Testing Data</span>
<span class="n">helper</span><span class="o">.</span><span class="n">preprocess_and_save_data</span><span class="p">(</span><span class="n">cifar10_dataset_folder_path</span><span class="p">,</span> <span class="n">normalize</span><span class="p">,</span> <span class="n">one_hot_encode</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="Check-Point">Check Point<a class="anchor-link" href="#Check-Point">&#182;</a></h1><p>This is your first checkpoint. If you ever decide to come back to this notebook or have to restart the notebook, you can start from here. The preprocessed data has been saved to disk.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[6]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">pickle</span>
<span class="kn">import</span> <span class="nn">problem_unittests</span> <span class="k">as</span> <span class="nn">tests</span>
<span class="kn">import</span> <span class="nn">helper</span>
<span class="c1"># Load the Preprocessed Validation data</span>
<span class="n">valid_features</span><span class="p">,</span> <span class="n">valid_labels</span> <span class="o">=</span> <span class="n">pickle</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="nb">open</span><span class="p">(</span><span class="s1">&#39;preprocess_validation.p&#39;</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s1">&#39;rb&#39;</span><span class="p">))</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Build-the-network">Build the network<a class="anchor-link" href="#Build-the-network">&#182;</a></h2><p>For the neural network, you'll build each layer into a function. Most of the code you've seen has been outside of functions. To test your code more thoroughly, we require that you put each layer in a function. This allows us to give you better feedback and test for simple mistakes using our unittests before you submit your project.</p>
<blockquote><p><strong>Note:</strong> If you're finding it hard to dedicate enough time for this course each week, we've provided a small shortcut to this part of the project. In the next couple of problems, you'll have the option to use classes from the <a href="https://www.tensorflow.org/api_docs/python/tf/layers">TensorFlow Layers</a> or <a href="https://www.tensorflow.org/api_guides/python/contrib.layers">TensorFlow Layers (contrib)</a> packages to build each layer, except the layers you build in the "Convolutional and Max Pooling Layer" section. TF Layers is similar to Keras's and TFLearn's abstraction to layers, so it's easy to pickup.</p>
<p>However, if you would like to get the most out of this course, try to solve all the problems <em>without</em> using anything from the TF Layers packages. You <strong>can</strong> still use classes from other packages that happen to have the same name as ones you find in TF Layers! For example, instead of using the TF Layers version of the <code>conv2d</code> class, <a href="https://www.tensorflow.org/api_docs/python/tf/layers/conv2d">tf.layers.conv2d</a>, you would want to use the TF Neural Network version of <code>conv2d</code>, <a href="https://www.tensorflow.org/api_docs/python/tf/nn/conv2d">tf.nn.conv2d</a>.</p>
</blockquote>
<p>Let's begin!</p>
<h3 id="Input">Input<a class="anchor-link" href="#Input">&#182;</a></h3><p>The neural network needs to read the image data, one-hot encoded labels, and dropout keep probability. Implement the following functions</p>
<ul>
<li>Implement <code>neural_net_image_input</code><ul>
<li>Return a <a href="https://www.tensorflow.org/api_docs/python/tf/placeholder">TF Placeholder</a></li>
<li>Set the shape using <code>image_shape</code> with batch size set to <code>None</code>.</li>
<li>Name the TensorFlow placeholder "x" using the TensorFlow <code>name</code> parameter in the <a href="https://www.tensorflow.org/api_docs/python/tf/placeholder">TF Placeholder</a>.</li>
</ul>
</li>
<li>Implement <code>neural_net_label_input</code><ul>
<li>Return a <a href="https://www.tensorflow.org/api_docs/python/tf/placeholder">TF Placeholder</a></li>
<li>Set the shape using <code>n_classes</code> with batch size set to <code>None</code>.</li>
<li>Name the TensorFlow placeholder "y" using the TensorFlow <code>name</code> parameter in the <a href="https://www.tensorflow.org/api_docs/python/tf/placeholder">TF Placeholder</a>.</li>
</ul>
</li>
<li>Implement <code>neural_net_keep_prob_input</code><ul>
<li>Return a <a href="https://www.tensorflow.org/api_docs/python/tf/placeholder">TF Placeholder</a> for dropout keep probability.</li>
<li>Name the TensorFlow placeholder "keep_prob" using the TensorFlow <code>name</code> parameter in the <a href="https://www.tensorflow.org/api_docs/python/tf/placeholder">TF Placeholder</a>.</li>
</ul>
</li>
</ul>
<p>These names will be used at the end of the project to load your saved model.</p>
<p>Note: <code>None</code> for shapes in TensorFlow allow for a dynamic size.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[7]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">tensorflow</span> <span class="k">as</span> <span class="nn">tf</span>
<span class="k">def</span> <span class="nf">neural_net_image_input</span><span class="p">(</span><span class="n">image_shape</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Return a Tensor for a bach of image input</span>
<span class="sd"> : image_shape: Shape of the images</span>
<span class="sd"> : return: Tensor for image input.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># TODO: Implement Function</span>
<span class="k">return</span> <span class="n">tf</span><span class="o">.</span><span class="n">placeholder</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">float32</span><span class="p">,</span> <span class="n">shape</span><span class="o">=</span><span class="p">[</span><span class="kc">None</span><span class="p">,</span> <span class="o">*</span><span class="n">image_shape</span><span class="p">],</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;x&#39;</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">neural_net_label_input</span><span class="p">(</span><span class="n">n_classes</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Return a Tensor for a batch of label input</span>
<span class="sd"> : n_classes: Number of classes</span>
<span class="sd"> : return: Tensor for label input.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># TODO: Implement Function</span>
<span class="k">return</span> <span class="n">tf</span><span class="o">.</span><span class="n">placeholder</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">float32</span><span class="p">,</span> <span class="n">shape</span><span class="o">=</span><span class="p">[</span><span class="kc">None</span><span class="p">,</span> <span class="mi">10</span><span class="p">],</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;y&#39;</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">neural_net_keep_prob_input</span><span class="p">():</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Return a Tensor for keep probability</span>
<span class="sd"> : return: Tensor for keep probability.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># TODO: Implement Function</span>
<span class="k">return</span> <span class="n">tf</span><span class="o">.</span><span class="n">placeholder</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">float32</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;keep_prob&#39;</span><span class="p">)</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">tf</span><span class="o">.</span><span class="n">reset_default_graph</span><span class="p">()</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_nn_image_inputs</span><span class="p">(</span><span class="n">neural_net_image_input</span><span class="p">)</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_nn_label_inputs</span><span class="p">(</span><span class="n">neural_net_label_input</span><span class="p">)</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_nn_keep_prob_inputs</span><span class="p">(</span><span class="n">neural_net_keep_prob_input</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Image Input Tests Passed.
Label Input Tests Passed.
Keep Prob Tests Passed.
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Convolution-and-Max-Pooling-Layer">Convolution and Max Pooling Layer<a class="anchor-link" href="#Convolution-and-Max-Pooling-Layer">&#182;</a></h3><p>Convolution layers have a lot of success with images. For this code cell, you should implement the function <code>conv2d_maxpool</code> to apply convolution then max pooling:</p>
<ul>
<li>Create the weight and bias using <code>conv_ksize</code>, <code>conv_num_outputs</code> and the shape of <code>x_tensor</code>.</li>
<li>Apply a convolution to <code>x_tensor</code> using weight and <code>conv_strides</code>.<ul>
<li>We recommend you use same padding, but you're welcome to use any padding.</li>
</ul>
</li>
<li>Add bias</li>
<li>Add a nonlinear activation to the convolution.</li>
<li>Apply Max Pooling using <code>pool_ksize</code> and <code>pool_strides</code>.<ul>
<li>We recommend you use same padding, but you're welcome to use any padding.</li>
</ul>
</li>
</ul>
<p><strong>Note:</strong> You <strong>can't</strong> use <a href="https://www.tensorflow.org/api_docs/python/tf/layers">TensorFlow Layers</a> or <a href="https://www.tensorflow.org/api_guides/python/contrib.layers">TensorFlow Layers (contrib)</a> for <strong>this</strong> layer, but you can still use TensorFlow's <a href="https://www.tensorflow.org/api_docs/python/tf/nn">Neural Network</a> package. You may still use the shortcut option for all the <strong>other</strong> layers.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[8]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">convolution</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">,</span> <span class="n">conv_num_outputs</span><span class="p">,</span> <span class="n">conv_strides</span><span class="p">):</span>
<span class="c1"># Create the weight and bias using conv_ksize, conv_num_outputs and the shape of x_tensor.</span>
<span class="n">weights</span> <span class="o">=</span> <span class="p">[</span><span class="n">x_tensor</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">as_list</span><span class="p">()[</span><span class="mi">1</span><span class="p">],</span> <span class="n">x_tensor</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">as_list</span><span class="p">()[</span><span class="mi">2</span><span class="p">],</span> <span class="n">x_tensor</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">as_list</span><span class="p">()[</span><span class="mi">3</span><span class="p">],</span> <span class="n">conv_num_outputs</span><span class="p">]</span>
<span class="n">weights</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">Variable</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">random_normal</span><span class="p">(</span><span class="n">weights</span><span class="p">,</span> <span class="n">stddev</span><span class="o">=</span><span class="mf">0.1</span><span class="p">))</span> <span class="c1"># input shape times WxHxD</span>
<span class="n">bias</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">Variable</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">constant</span><span class="p">(</span><span class="mf">0.05</span><span class="p">,</span> <span class="n">shape</span><span class="o">=</span><span class="p">[</span><span class="n">conv_num_outputs</span><span class="p">]))</span><span class="c1"># one for each convolution layer [conv_layer_number_of_elemetns] </span>
<span class="c1"># Apply a convolution to x_tensor using weight and conv_strides.</span>
<span class="c1"># -We recommend you use same padding, but you&#39;re welcome to use any padding.</span>
<span class="n">conv_strides</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span><span class="p">,)</span> <span class="o">+</span> <span class="n">conv_strides</span> <span class="o">+</span> <span class="p">(</span><span class="mi">1</span><span class="p">,)</span>
<span class="n">layer</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">conv2d</span><span class="p">(</span><span class="nb">input</span><span class="o">=</span><span class="n">x_tensor</span><span class="p">,</span>
<span class="nb">filter</span><span class="o">=</span><span class="n">weights</span><span class="p">,</span>
<span class="n">strides</span><span class="o">=</span><span class="n">conv_strides</span><span class="p">,</span>
<span class="n">padding</span><span class="o">=</span><span class="s1">&#39;SAME&#39;</span><span class="p">)</span>
<span class="c1"># Add bias</span>
<span class="n">layer</span> <span class="o">+=</span> <span class="n">bias</span>
<span class="k">return</span> <span class="n">layer</span>
<span class="k">def</span> <span class="nf">conv2d_maxpool</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">,</span> <span class="n">conv_num_outputs</span><span class="p">,</span> <span class="n">conv_ksize</span><span class="p">,</span> <span class="n">conv_strides</span><span class="p">,</span> <span class="n">pool_ksize</span><span class="p">,</span> <span class="n">pool_strides</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Apply convolution then max pooling to x_tensor</span>
<span class="sd"> :param x_tensor: TensorFlow Tensor</span>
<span class="sd"> :param conv_num_outputs: Number of outputs for the convolutional layer</span>
<span class="sd"> :param conv_ksize: kernal size 2-D Tuple for the convolutional layer</span>
<span class="sd"> :param conv_strides: Stride 2-D Tuple for convolution</span>
<span class="sd"> :param pool_ksize: kernal size 2-D Tuple for pool</span>
<span class="sd"> :param pool_strides: Stride 2-D Tuple for pool</span>
<span class="sd"> : return: A tensor that represents convolution and max pooling of x_tensor</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># TODO: Implement Function</span>
<span class="n">layer</span> <span class="o">=</span> <span class="n">convolution</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">,</span> <span class="n">conv_num_outputs</span><span class="p">,</span> <span class="n">conv_strides</span><span class="p">)</span>
<span class="c1"># Add a nonlinear activation to the convolution.</span>
<span class="n">layer</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="n">layer</span><span class="p">)</span>
<span class="n">layer</span> <span class="o">=</span> <span class="n">convolution</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">,</span> <span class="n">conv_num_outputs</span><span class="p">,</span> <span class="n">conv_strides</span><span class="p">)</span>
<span class="n">layer</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="n">layer</span><span class="p">)</span>
<span class="c1"># Apply Max Pooling using pool_ksize and pool_strides.</span>
<span class="c1"># -We recommend you use same padding, but you&#39;re welcome to use any padding.</span>
<span class="n">pool_ksize</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span><span class="p">,)</span> <span class="o">+</span> <span class="n">pool_ksize</span> <span class="o">+</span> <span class="p">(</span><span class="mi">1</span><span class="p">,)</span>
<span class="n">pool_strides</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span><span class="p">,)</span> <span class="o">+</span> <span class="n">pool_strides</span> <span class="o">+</span> <span class="p">(</span><span class="mi">1</span><span class="p">,)</span>
<span class="n">layer</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">max_pool</span><span class="p">(</span><span class="n">value</span><span class="o">=</span><span class="n">layer</span><span class="p">,</span>
<span class="n">ksize</span><span class="o">=</span><span class="n">pool_ksize</span><span class="p">,</span>
<span class="n">strides</span><span class="o">=</span><span class="n">pool_strides</span><span class="p">,</span>
<span class="n">padding</span><span class="o">=</span><span class="s1">&#39;SAME&#39;</span><span class="p">)</span>
<span class="k">return</span> <span class="n">layer</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_con_pool</span><span class="p">(</span><span class="n">conv2d_maxpool</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Tests Passed
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Flatten-Layer">Flatten Layer<a class="anchor-link" href="#Flatten-Layer">&#182;</a></h3><p>Implement the <code>flatten</code> function to change the dimension of <code>x_tensor</code> from a 4-D tensor to a 2-D tensor. The output should be the shape (<em>Batch Size</em>, <em>Flattened Image Size</em>). Shortcut option: you can use classes from the <a href="https://www.tensorflow.org/api_docs/python/tf/layers">TensorFlow Layers</a> or <a href="https://www.tensorflow.org/api_guides/python/contrib.layers">TensorFlow Layers (contrib)</a> packages for this layer. For more of a challenge, only use other TensorFlow packages.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[9]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">flatten</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Flatten x_tensor to (Batch Size, Flattened Image Size)</span>
<span class="sd"> : x_tensor: A tensor of size (Batch Size, ...), where ... are the image dimensions.</span>
<span class="sd"> : return: A tensor of size (Batch Size, Flattened Image Size).</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># TODO: Implement Function</span>
<span class="n">image_size</span> <span class="o">=</span> <span class="n">x_tensor</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="mi">4</span><span class="p">]</span><span class="o">.</span><span class="n">num_elements</span><span class="p">()</span>
<span class="n">result_tuple</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="n">x_tensor</span><span class="o">.</span><span class="n">shape</span><span class="o">.</span><span class="n">as_list</span><span class="p">()[</span><span class="mi">0</span><span class="p">],</span> <span class="n">image_size</span><span class="p">])</span>
<span class="k">return</span> <span class="n">tf</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">,</span> <span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">image_size</span><span class="p">])</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_flatten</span><span class="p">(</span><span class="n">flatten</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Tests Passed
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Fully-Connected-Layer">Fully-Connected Layer<a class="anchor-link" href="#Fully-Connected-Layer">&#182;</a></h3><p>Implement the <code>fully_conn</code> function to apply a fully connected layer to <code>x_tensor</code> with the shape (<em>Batch Size</em>, <em>num_outputs</em>). Shortcut option: you can use classes from the <a href="https://www.tensorflow.org/api_docs/python/tf/layers">TensorFlow Layers</a> or <a href="https://www.tensorflow.org/api_guides/python/contrib.layers">TensorFlow Layers (contrib)</a> packages for this layer. For more of a challenge, only use other TensorFlow packages.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[10]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">fully_conn</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">,</span> <span class="n">num_outputs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Apply a fully connected layer to x_tensor using weight and bias</span>
<span class="sd"> : x_tensor: A 2-D tensor where the first dimension is batch size.</span>
<span class="sd"> : num_outputs: The number of output that the new tensor should be.</span>
<span class="sd"> : return: A 2-D tensor where the second dimension is num_outputs.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># TODO: Implement Function</span>
<span class="c1"># Create new weights and biases.</span>
<span class="n">num_inputs</span> <span class="o">=</span> <span class="n">x_tensor</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="mi">4</span><span class="p">]</span><span class="o">.</span><span class="n">num_elements</span><span class="p">()</span>
<span class="n">weights</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">Variable</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">truncated_normal</span><span class="p">([</span><span class="n">num_inputs</span><span class="p">,</span> <span class="n">num_outputs</span><span class="p">],</span> <span class="n">stddev</span><span class="o">=</span><span class="mf">0.1</span><span class="p">))</span>
<span class="n">biases</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">Variable</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">constant</span><span class="p">(</span><span class="mf">0.05</span><span class="p">,</span> <span class="n">shape</span><span class="o">=</span><span class="p">[</span><span class="n">num_outputs</span><span class="p">]))</span>
<span class="c1"># Calculate the layer as the matrix multiplication of</span>
<span class="c1"># the input and weights, and then add the bias-values.</span>
<span class="n">layer</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">matmul</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">,</span> <span class="n">weights</span><span class="p">)</span> <span class="o">+</span> <span class="n">biases</span>
<span class="k">return</span> <span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="n">layer</span><span class="p">)</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_fully_conn</span><span class="p">(</span><span class="n">fully_conn</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Tests Passed
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Output-Layer">Output Layer<a class="anchor-link" href="#Output-Layer">&#182;</a></h3><p>Implement the <code>output</code> function to apply a fully connected layer to <code>x_tensor</code> with the shape (<em>Batch Size</em>, <em>num_outputs</em>). Shortcut option: you can use classes from the <a href="https://www.tensorflow.org/api_docs/python/tf/layers">TensorFlow Layers</a> or <a href="https://www.tensorflow.org/api_guides/python/contrib.layers">TensorFlow Layers (contrib)</a> packages for this layer. For more of a challenge, only use other TensorFlow packages.</p>
<p><strong>Note:</strong> Activation, softmax, or cross entropy should <strong>not</strong> be applied to this.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[23]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">output</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">,</span> <span class="n">num_outputs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Apply a output layer to x_tensor using weight and bias</span>
<span class="sd"> : x_tensor: A 2-D tensor where the first dimension is batch size.</span>
<span class="sd"> : num_outputs: The number of output that the new tensor should be.</span>
<span class="sd"> : return: A 2-D tensor where the second dimension is num_outputs.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># TODO: Implement Function</span>
<span class="n">num_inputs</span> <span class="o">=</span> <span class="n">x_tensor</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="mi">4</span><span class="p">]</span><span class="o">.</span><span class="n">num_elements</span><span class="p">()</span>
<span class="n">weights</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">Variable</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">truncated_normal</span><span class="p">([</span><span class="n">num_inputs</span><span class="p">,</span> <span class="n">num_outputs</span><span class="p">],</span> <span class="n">stddev</span><span class="o">=</span><span class="mf">0.1</span><span class="p">))</span>
<span class="n">biases</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">Variable</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">constant</span><span class="p">(</span><span class="mf">0.05</span><span class="p">,</span> <span class="n">shape</span><span class="o">=</span><span class="p">[</span><span class="n">num_outputs</span><span class="p">]))</span>
<span class="n">layer</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">matmul</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">,</span> <span class="n">weights</span><span class="p">)</span> <span class="o">+</span> <span class="n">biases</span>
<span class="k">return</span> <span class="n">layer</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_output</span><span class="p">(</span><span class="n">output</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Tests Passed
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Create-Convolutional-Model">Create Convolutional Model<a class="anchor-link" href="#Create-Convolutional-Model">&#182;</a></h3><p>Implement the function <code>conv_net</code> to create a convolutional neural network model. The function takes in a batch of images, <code>x</code>, and outputs logits. Use the layers you created above to create this model:</p>
<ul>
<li>Apply 1, 2, or 3 Convolution and Max Pool layers</li>
<li>Apply a Flatten Layer</li>
<li>Apply 1, 2, or 3 Fully Connected Layers</li>
<li>Apply an Output Layer</li>
<li>Return the output</li>
<li>Apply <a href="https://www.tensorflow.org/api_docs/python/tf/nn/dropout">TensorFlow's Dropout</a> to one or more layers in the model using <code>keep_prob</code>. </li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[24]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">conv_net</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">keep_prob</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Create a convolutional neural network model</span>
<span class="sd"> : x: Placeholder tensor that holds image data.</span>
<span class="sd"> : keep_prob: Placeholder tensor that hold dropout keep probability.</span>
<span class="sd"> : return: Tensor that represents logits</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># TODO: Apply 1, 2, or 3 Convolution and Max Pool layers</span>
<span class="n">conv_num_outputs</span><span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="mi">32</span><span class="p">)</span>
<span class="n">conv_ksize</span> <span class="o">=</span> <span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span>
<span class="n">conv_strides</span> <span class="o">=</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">pool_ksize</span> <span class="o">=</span> <span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span>
<span class="n">pool_strides</span> <span class="o">=</span> <span class="n">pool_ksize</span>
<span class="n">layer</span> <span class="o">=</span> <span class="n">x</span>
<span class="n">layer</span> <span class="o">=</span> <span class="n">conv2d_maxpool</span><span class="p">(</span><span class="n">layer</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">conv_num_outputs</span><span class="o">*</span><span class="mi">2</span><span class="p">),</span> <span class="n">conv_ksize</span><span class="p">,</span> <span class="n">conv_strides</span><span class="p">,</span> <span class="n">pool_ksize</span><span class="p">,</span> <span class="n">pool_strides</span><span class="p">)</span>
<span class="n">layer</span> <span class="o">=</span> <span class="n">conv2d_maxpool</span><span class="p">(</span><span class="n">layer</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">conv_num_outputs</span><span class="o">*</span><span class="mi">4</span><span class="p">),</span> <span class="n">conv_ksize</span><span class="p">,</span> <span class="n">conv_strides</span><span class="p">,</span> <span class="n">pool_ksize</span><span class="p">,</span> <span class="n">pool_strides</span><span class="p">)</span>
<span class="c1"># layer = conv2d_maxpool(layer, int(conv_num_outputs*4), conv_ksize, conv_strides, pool_ksize, pool_strides)</span>
<span class="n">layer</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">dropout</span><span class="p">(</span><span class="n">layer</span><span class="p">,</span> <span class="n">keep_prob</span><span class="p">)</span>
<span class="c1"># TODO: Apply a Flatten Layer</span>
<span class="n">layer</span> <span class="o">=</span> <span class="n">flatten</span><span class="p">(</span><span class="n">layer</span><span class="p">)</span>
<span class="c1"># TODO: Apply 1, 2, or 3 Fully Connected Layers</span>
<span class="n">layer</span> <span class="o">=</span> <span class="n">fully_conn</span><span class="p">(</span><span class="n">layer</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">conv_num_outputs</span><span class="p">))</span>
<span class="n">layer</span> <span class="o">=</span> <span class="n">fully_conn</span><span class="p">(</span><span class="n">layer</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">conv_num_outputs</span><span class="o">/</span><span class="mi">2</span><span class="p">))</span>
<span class="c1"># TODO: Apply an Output Layer</span>
<span class="c1"># Set this to the number of classes</span>
<span class="c1"># Function Definition from Above:</span>
<span class="n">layer</span> <span class="o">=</span> <span class="n">output</span><span class="p">(</span><span class="n">layer</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
<span class="c1"># TODO: return output</span>
<span class="k">return</span> <span class="n">layer</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="c1">##############################</span>
<span class="c1">## Build the Neural Network ##</span>
<span class="c1">##############################</span>
<span class="c1"># Remove previous weights, bias, inputs, etc..</span>
<span class="n">tf</span><span class="o">.</span><span class="n">reset_default_graph</span><span class="p">()</span>
<span class="c1"># Inputs</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">neural_net_image_input</span><span class="p">((</span><span class="mi">32</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">neural_net_label_input</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
<span class="n">keep_prob</span> <span class="o">=</span> <span class="n">neural_net_keep_prob_input</span><span class="p">()</span>
<span class="c1"># Model</span>
<span class="n">logits</span> <span class="o">=</span> <span class="n">conv_net</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">keep_prob</span><span class="p">)</span>
<span class="c1"># Name logits Tensor, so that is can be loaded from disk after training</span>
<span class="n">logits</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">identity</span><span class="p">(</span><span class="n">logits</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;logits&#39;</span><span class="p">)</span>
<span class="c1"># Loss and Optimizer</span>
<span class="n">cost</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">reduce_mean</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">softmax_cross_entropy_with_logits</span><span class="p">(</span><span class="n">logits</span><span class="o">=</span><span class="n">logits</span><span class="p">,</span> <span class="n">labels</span><span class="o">=</span><span class="n">y</span><span class="p">))</span>
<span class="n">optimizer</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">train</span><span class="o">.</span><span class="n">AdamOptimizer</span><span class="p">()</span><span class="o">.</span><span class="n">minimize</span><span class="p">(</span><span class="n">cost</span><span class="p">)</span>
<span class="c1"># Accuracy</span>
<span class="n">correct_pred</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">equal</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">argmax</span><span class="p">(</span><span class="n">logits</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">tf</span><span class="o">.</span><span class="n">argmax</span><span class="p">(</span><span class="n">y</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>
<span class="n">accuracy</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">reduce_mean</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">correct_pred</span><span class="p">,</span> <span class="n">tf</span><span class="o">.</span><span class="n">float32</span><span class="p">),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;accuracy&#39;</span><span class="p">)</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_conv_net</span><span class="p">(</span><span class="n">conv_net</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Neural Network Built!
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Train-the-Neural-Network">Train the Neural Network<a class="anchor-link" href="#Train-the-Neural-Network">&#182;</a></h2><h3 id="Single-Optimization">Single Optimization<a class="anchor-link" href="#Single-Optimization">&#182;</a></h3><p>Implement the function <code>train_neural_network</code> to do a single optimization. The optimization should use <code>optimizer</code> to optimize in <code>session</code> with a <code>feed_dict</code> of the following:</p>
<ul>
<li><code>x</code> for image input</li>
<li><code>y</code> for labels</li>
<li><code>keep_prob</code> for keep probability for dropout</li>
</ul>
<p>This function will be called for each batch, so <code>tf.global_variables_initializer()</code> has already been called.</p>
<p>Note: Nothing needs to be returned. This function is only optimizing the neural network.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[25]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">train_neural_network</span><span class="p">(</span><span class="n">session</span><span class="p">,</span> <span class="n">optimizer</span><span class="p">,</span> <span class="n">keep_probability</span><span class="p">,</span> <span class="n">feature_batch</span><span class="p">,</span> <span class="n">label_batch</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Optimize the session on a batch of images and labels</span>
<span class="sd"> : session: Current TensorFlow session</span>
<span class="sd"> : optimizer: TensorFlow optimizer function</span>
<span class="sd"> : keep_probability: keep probability</span>
<span class="sd"> : feature_batch: Batch of Numpy image data</span>
<span class="sd"> : label_batch: Batch of Numpy label data</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">session</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">optimizer</span><span class="p">,</span> <span class="n">feed_dict</span><span class="o">=</span><span class="p">{</span><span class="n">x</span><span class="p">:</span><span class="n">feature_batch</span><span class="p">,</span>
<span class="n">y</span><span class="p">:</span><span class="n">label_batch</span><span class="p">,</span>
<span class="n">keep_prob</span><span class="p">:</span><span class="n">keep_probability</span> <span class="p">})</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_train_nn</span><span class="p">(</span><span class="n">train_neural_network</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Tests Passed
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Show-Stats">Show Stats<a class="anchor-link" href="#Show-Stats">&#182;</a></h3><p>Implement the function <code>print_stats</code> to print loss and validation accuracy. Use the global variables <code>valid_features</code> and <code>valid_labels</code> to calculate validation accuracy. Use a keep probability of <code>1.0</code> to calculate the loss and validation accuracy.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[26]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># def print_stats(session, feature_batch, label_batch, cost, accuracy):</span>
<span class="k">def</span> <span class="nf">print_stats</span><span class="p">(</span><span class="n">session</span><span class="p">,</span> <span class="n">x_batch</span><span class="p">,</span> <span class="n">y_true_batch</span><span class="p">,</span> <span class="n">cost</span><span class="p">,</span> <span class="n">accuracy</span><span class="p">):</span>
<span class="n">feed_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">x</span><span class="p">:</span> <span class="n">x_batch</span><span class="p">,</span>
<span class="n">y</span><span class="p">:</span> <span class="n">y_true_batch</span><span class="p">,</span>
<span class="n">keep_prob</span><span class="p">:</span><span class="mf">1.0</span><span class="p">}</span>
<span class="n">cost</span> <span class="o">=</span> <span class="n">session</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">cost</span><span class="p">,</span> <span class="n">feed_dict</span><span class="o">=</span><span class="n">feed_dict</span><span class="p">)</span>
<span class="n">feed_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">x</span><span class="p">:</span> <span class="n">valid_features</span><span class="p">,</span>
<span class="n">y</span><span class="p">:</span> <span class="n">valid_labels</span><span class="p">,</span>
<span class="n">keep_prob</span><span class="p">:</span><span class="mf">1.0</span><span class="p">}</span>
<span class="n">accuracy</span> <span class="o">=</span> <span class="n">session</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">accuracy</span><span class="p">,</span> <span class="n">feed_dict</span><span class="o">=</span><span class="n">feed_dict</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;cost:</span><span class="si">{:&lt;21}</span><span class="s2"> | acc:</span><span class="si">{}</span><span class="s2">&quot;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">cost</span><span class="p">,</span> <span class="n">accuracy</span><span class="p">))</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Hyperparameters">Hyperparameters<a class="anchor-link" href="#Hyperparameters">&#182;</a></h3><p>Tune the following parameters:</p>
<ul>
<li>Set <code>epochs</code> to the number of iterations until the network stops learning or start overfitting</li>
<li>Set <code>batch_size</code> to the highest number that your machine has memory for. Most people set them to common sizes of memory:<ul>
<li>64</li>
<li>128</li>
<li>256</li>
<li>...</li>
</ul>
</li>
<li>Set <code>keep_probability</code> to the probability of keeping a node using dropout</li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[27]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO: Tune Parameters</span>
<span class="n">epochs</span> <span class="o">=</span> <span class="mi">200</span>
<span class="n">batch_size</span> <span class="o">=</span> <span class="mi">256</span>
<span class="n">keep_probability</span> <span class="o">=</span> <span class="mf">0.5</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Train-on-a-Single-CIFAR-10-Batch">Train on a Single CIFAR-10 Batch<a class="anchor-link" href="#Train-on-a-Single-CIFAR-10-Batch">&#182;</a></h3><p>Instead of training the neural network on all the CIFAR-10 batches of data, let's use a single batch. This should save time while you iterate on the model to get a better accuracy. Once the final validation accuracy is 50% or greater, run the model on all the data in the next section.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[28]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Checking the Training on a Single Batch...&#39;</span><span class="p">)</span>
<span class="k">with</span> <span class="n">tf</span><span class="o">.</span><span class="n">Session</span><span class="p">()</span> <span class="k">as</span> <span class="n">sess</span><span class="p">:</span>
<span class="c1"># Initializing the variables</span>
<span class="n">sess</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">global_variables_initializer</span><span class="p">())</span>
<span class="c1"># Training cycle</span>
<span class="k">for</span> <span class="n">epoch</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">epochs</span><span class="p">):</span>
<span class="n">batch_i</span> <span class="o">=</span> <span class="mi">1</span>
<span class="k">for</span> <span class="n">batch_features</span><span class="p">,</span> <span class="n">batch_labels</span> <span class="ow">in</span> <span class="n">helper</span><span class="o">.</span><span class="n">load_preprocess_training_batch</span><span class="p">(</span><span class="n">batch_i</span><span class="p">,</span> <span class="n">batch_size</span><span class="p">):</span>
<span class="n">train_neural_network</span><span class="p">(</span><span class="n">sess</span><span class="p">,</span> <span class="n">optimizer</span><span class="p">,</span> <span class="n">keep_probability</span><span class="p">,</span> <span class="n">batch_features</span><span class="p">,</span> <span class="n">batch_labels</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Epoch </span><span class="si">{:&gt;2}</span><span class="s1">, CIFAR-10 Batch </span><span class="si">{}</span><span class="s1">: &#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">epoch</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">batch_i</span><span class="p">),</span> <span class="n">end</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">print_stats</span><span class="p">(</span><span class="n">sess</span><span class="p">,</span> <span class="n">batch_features</span><span class="p">,</span> <span class="n">batch_labels</span><span class="p">,</span> <span class="n">cost</span><span class="p">,</span> <span class="n">accuracy</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Checking the Training on a Single Batch...
Epoch 1, CIFAR-10 Batch 1: </pre>
</div>
</div>
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_text output_error">
<pre>
<span class="ansi-red-fg">---------------------------------------------------------------------------</span>
<span class="ansi-red-fg">KeyboardInterrupt</span> Traceback (most recent call last)
<span class="ansi-green-fg">&lt;ipython-input-28-0ebd1bbc35ad&gt;</span> in <span class="ansi-cyan-fg">&lt;module&gt;</span><span class="ansi-blue-fg">()</span>
<span class="ansi-green-intense-fg ansi-bold"> 13</span> train_neural_network<span class="ansi-blue-fg">(</span>sess<span class="ansi-blue-fg">,</span> optimizer<span class="ansi-blue-fg">,</span> keep_probability<span class="ansi-blue-fg">,</span> batch_features<span class="ansi-blue-fg">,</span> batch_labels<span class="ansi-blue-fg">)</span>
<span class="ansi-green-intense-fg ansi-bold"> 14</span> print<span class="ansi-blue-fg">(</span><span class="ansi-blue-fg">&#39;Epoch {:&gt;2}, CIFAR-10 Batch {}: &#39;</span><span class="ansi-blue-fg">.</span>format<span class="ansi-blue-fg">(</span>epoch <span class="ansi-blue-fg">+</span> <span class="ansi-cyan-fg">1</span><span class="ansi-blue-fg">,</span> batch_i<span class="ansi-blue-fg">)</span><span class="ansi-blue-fg">,</span> end<span class="ansi-blue-fg">=</span><span class="ansi-blue-fg">&#39;&#39;</span><span class="ansi-blue-fg">)</span>
<span class="ansi-green-fg">---&gt; 15</span><span class="ansi-red-fg"> </span>print_stats<span class="ansi-blue-fg">(</span>sess<span class="ansi-blue-fg">,</span> batch_features<span class="ansi-blue-fg">,</span> batch_labels<span class="ansi-blue-fg">,</span> cost<span class="ansi-blue-fg">,</span> accuracy<span class="ansi-blue-fg">)</span>
<span class="ansi-green-fg">&lt;ipython-input-26-09858e298b63&gt;</span> in <span class="ansi-cyan-fg">print_stats</span><span class="ansi-blue-fg">(session, x_batch, y_true_batch, cost, accuracy)</span>
<span class="ansi-green-intense-fg ansi-bold"> 10</span> keep_prob:1.0}
<span class="ansi-green-intense-fg ansi-bold"> 11</span>
<span class="ansi-green-fg">---&gt; 12</span><span class="ansi-red-fg"> </span>accuracy <span class="ansi-blue-fg">=</span> session<span class="ansi-blue-fg">.</span>run<span class="ansi-blue-fg">(</span>accuracy<span class="ansi-blue-fg">,</span> feed_dict<span class="ansi-blue-fg">=</span>feed_dict<span class="ansi-blue-fg">)</span>
<span class="ansi-green-intense-fg ansi-bold"> 13</span> print<span class="ansi-blue-fg">(</span><span class="ansi-blue-fg">&#34;cost:{:&lt;21} | acc:{}&#34;</span><span class="ansi-blue-fg">.</span>format<span class="ansi-blue-fg">(</span>cost<span class="ansi-blue-fg">,</span> accuracy<span class="ansi-blue-fg">)</span><span class="ansi-blue-fg">)</span>
<span class="ansi-green-intense-fg ansi-bold"> 14</span>
<span class="ansi-green-fg">/home/carnd/anaconda3/envs/dl/lib/python3.5/site-packages/tensorflow/python/client/session.py</span> in <span class="ansi-cyan-fg">run</span><span class="ansi-blue-fg">(self, fetches, feed_dict, options, run_metadata)</span>
<span class="ansi-green-intense-fg ansi-bold"> 765</span> <span class="ansi-green-fg">try</span><span class="ansi-blue-fg">:</span>
<span class="ansi-green-intense-fg ansi-bold"> 766</span> result = self._run(None, fetches, feed_dict, options_ptr,
<span class="ansi-green-fg">--&gt; 767</span><span class="ansi-red-fg"> run_metadata_ptr)
</span><span class="ansi-green-intense-fg ansi-bold"> 768</span> <span class="ansi-green-fg">if</span> run_metadata<span class="ansi-blue-fg">:</span>
<span class="ansi-green-intense-fg ansi-bold"> 769</span> proto_data <span class="ansi-blue-fg">=</span> tf_session<span class="ansi-blue-fg">.</span>TF_GetBuffer<span class="ansi-blue-fg">(</span>run_metadata_ptr<span class="ansi-blue-fg">)</span>
<span class="ansi-green-fg">/home/carnd/anaconda3/envs/dl/lib/python3.5/site-packages/tensorflow/python/client/session.py</span> in <span class="ansi-cyan-fg">_run</span><span class="ansi-blue-fg">(self, handle, fetches, feed_dict, options, run_metadata)</span>
<span class="ansi-green-intense-fg ansi-bold"> 963</span> <span class="ansi-green-fg">if</span> final_fetches <span class="ansi-green-fg">or</span> final_targets<span class="ansi-blue-fg">:</span>
<span class="ansi-green-intense-fg ansi-bold"> 964</span> results = self._do_run(handle, final_targets, final_fetches,
<span class="ansi-green-fg">--&gt; 965</span><span class="ansi-red-fg"> feed_dict_string, options, run_metadata)
</span><span class="ansi-green-intense-fg ansi-bold"> 966</span> <span class="ansi-green-fg">else</span><span class="ansi-blue-fg">:</span>
<span class="ansi-green-intense-fg ansi-bold"> 967</span> results <span class="ansi-blue-fg">=</span> <span class="ansi-blue-fg">[</span><span class="ansi-blue-fg">]</span>
<span class="ansi-green-fg">/home/carnd/anaconda3/envs/dl/lib/python3.5/site-packages/tensorflow/python/client/session.py</span> in <span class="ansi-cyan-fg">_do_run</span><span class="ansi-blue-fg">(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)</span>
<span class="ansi-green-intense-fg ansi-bold"> 1013</span> <span class="ansi-green-fg">if</span> handle <span class="ansi-green-fg">is</span> <span class="ansi-green-fg">None</span><span class="ansi-blue-fg">:</span>
<span class="ansi-green-intense-fg ansi-bold"> 1014</span> return self._do_call(_run_fn, self._session, feed_dict, fetch_list,
<span class="ansi-green-fg">-&gt; 1015</span><span class="ansi-red-fg"> target_list, options, run_metadata)
</span><span class="ansi-green-intense-fg ansi-bold"> 1016</span> <span class="ansi-green-fg">else</span><span class="ansi-blue-fg">:</span>
<span class="ansi-green-intense-fg ansi-bold"> 1017</span> return self._do_call(_prun_fn, self._session, handle, feed_dict,
<span class="ansi-green-fg">/home/carnd/anaconda3/envs/dl/lib/python3.5/site-packages/tensorflow/python/client/session.py</span> in <span class="ansi-cyan-fg">_do_call</span><span class="ansi-blue-fg">(self, fn, *args)</span>
<span class="ansi-green-intense-fg ansi-bold"> 1020</span> <span class="ansi-green-fg">def</span> _do_call<span class="ansi-blue-fg">(</span>self<span class="ansi-blue-fg">,</span> fn<span class="ansi-blue-fg">,</span> <span class="ansi-blue-fg">*</span>args<span class="ansi-blue-fg">)</span><span class="ansi-blue-fg">:</span>
<span class="ansi-green-intense-fg ansi-bold"> 1021</span> <span class="ansi-green-fg">try</span><span class="ansi-blue-fg">:</span>
<span class="ansi-green-fg">-&gt; 1022</span><span class="ansi-red-fg"> </span><span class="ansi-green-fg">return</span> fn<span class="ansi-blue-fg">(</span><span class="ansi-blue-fg">*</span>args<span class="ansi-blue-fg">)</span>
<span class="ansi-green-intense-fg ansi-bold"> 1023</span> <span class="ansi-green-fg">except</span> errors<span class="ansi-blue-fg">.</span>OpError <span class="ansi-green-fg">as</span> e<span class="ansi-blue-fg">:</span>
<span class="ansi-green-intense-fg ansi-bold"> 1024</span> message <span class="ansi-blue-fg">=</span> compat<span class="ansi-blue-fg">.</span>as_text<span class="ansi-blue-fg">(</span>e<span class="ansi-blue-fg">.</span>message<span class="ansi-blue-fg">)</span>
<span class="ansi-green-fg">/home/carnd/anaconda3/envs/dl/lib/python3.5/site-packages/tensorflow/python/client/session.py</span> in <span class="ansi-cyan-fg">_run_fn</span><span class="ansi-blue-fg">(session, feed_dict, fetch_list, target_list, options, run_metadata)</span>
<span class="ansi-green-intense-fg ansi-bold"> 1002</span> return tf_session.TF_Run(session, options,
<span class="ansi-green-intense-fg ansi-bold"> 1003</span> feed_dict<span class="ansi-blue-fg">,</span> fetch_list<span class="ansi-blue-fg">,</span> target_list<span class="ansi-blue-fg">,</span>
<span class="ansi-green-fg">-&gt; 1004</span><span class="ansi-red-fg"> status, run_metadata)
</span><span class="ansi-green-intense-fg ansi-bold"> 1005</span>
<span class="ansi-green-intense-fg ansi-bold"> 1006</span> <span class="ansi-green-fg">def</span> _prun_fn<span class="ansi-blue-fg">(</span>session<span class="ansi-blue-fg">,</span> handle<span class="ansi-blue-fg">,</span> feed_dict<span class="ansi-blue-fg">,</span> fetch_list<span class="ansi-blue-fg">)</span><span class="ansi-blue-fg">:</span>
<span class="ansi-red-fg">KeyboardInterrupt</span>: </pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Fully-Train-the-Model">Fully Train the Model<a class="anchor-link" href="#Fully-Train-the-Model">&#182;</a></h3><p>Now that you got a good accuracy with a single CIFAR-10 batch, try it with all five batches.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">save_model_path</span> <span class="o">=</span> <span class="s1">&#39;./image_classification&#39;</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Training...&#39;</span><span class="p">)</span>
<span class="k">with</span> <span class="n">tf</span><span class="o">.</span><span class="n">Session</span><span class="p">()</span> <span class="k">as</span> <span class="n">sess</span><span class="p">:</span>
<span class="c1"># Initializing the variables</span>
<span class="n">sess</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">global_variables_initializer</span><span class="p">())</span>
<span class="c1"># Training cycle</span>
<span class="k">for</span> <span class="n">epoch</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">epochs</span><span class="p">):</span>
<span class="c1"># Loop over all batches</span>
<span class="n">n_batches</span> <span class="o">=</span> <span class="mi">5</span>
<span class="k">for</span> <span class="n">batch_i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">n_batches</span> <span class="o">+</span> <span class="mi">1</span><span class="p">):</span>
<span class="k">for</span> <span class="n">batch_features</span><span class="p">,</span> <span class="n">batch_labels</span> <span class="ow">in</span> <span class="n">helper</span><span class="o">.</span><span class="n">load_preprocess_training_batch</span><span class="p">(</span><span class="n">batch_i</span><span class="p">,</span> <span class="n">batch_size</span><span class="p">):</span>
<span class="n">train_neural_network</span><span class="p">(</span><span class="n">sess</span><span class="p">,</span> <span class="n">optimizer</span><span class="p">,</span> <span class="n">keep_probability</span><span class="p">,</span> <span class="n">batch_features</span><span class="p">,</span> <span class="n">batch_labels</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Epoch </span><span class="si">{:&gt;2}</span><span class="s1">, CIFAR-10 Batch </span><span class="si">{}</span><span class="s1">: &#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">epoch</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">batch_i</span><span class="p">),</span> <span class="n">end</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">print_stats</span><span class="p">(</span><span class="n">sess</span><span class="p">,</span> <span class="n">batch_features</span><span class="p">,</span> <span class="n">batch_labels</span><span class="p">,</span> <span class="n">cost</span><span class="p">,</span> <span class="n">accuracy</span><span class="p">)</span>
<span class="c1"># Save Model</span>
<span class="n">saver</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">train</span><span class="o">.</span><span class="n">Saver</span><span class="p">()</span>
<span class="n">save_path</span> <span class="o">=</span> <span class="n">saver</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">sess</span><span class="p">,</span> <span class="n">save_model_path</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Training...
Epoch 1, CIFAR-10 Batch 1: cost:2.3013153076171875 | acc:0.10499998927116394
Epoch 1, CIFAR-10 Batch 2: cost:2.2934391498565674 | acc:0.14879998564720154
Epoch 1, CIFAR-10 Batch 3: cost:1.9417580366134644 | acc:0.1735999882221222
Epoch 1, CIFAR-10 Batch 4: cost:2.077556610107422 | acc:0.18959999084472656
Epoch 1, CIFAR-10 Batch 5: cost:2.0504345893859863 | acc:0.19860000908374786
Epoch 2, CIFAR-10 Batch 1: cost:2.1273410320281982 | acc:0.24899999797344208
Epoch 2, CIFAR-10 Batch 2: cost:1.9855499267578125 | acc:0.25999999046325684
Epoch 2, CIFAR-10 Batch 3: cost:1.665779709815979 | acc:0.25999999046325684
Epoch 2, CIFAR-10 Batch 4: cost:1.7781481742858887 | acc:0.296999990940094
Epoch 2, CIFAR-10 Batch 5: cost:1.7231721878051758 | acc:0.3198000192642212
Epoch 3, CIFAR-10 Batch 1: cost:2.017380952835083 | acc:0.33079996705055237
Epoch 3, CIFAR-10 Batch 2: cost:1.9087944030761719 | acc:0.3283999562263489
Epoch 3, CIFAR-10 Batch 3: cost:1.5201936960220337 | acc:0.3335999846458435
Epoch 3, CIFAR-10 Batch 4: cost:1.6032397747039795 | acc:0.3725999593734741
Epoch 3, CIFAR-10 Batch 5: cost:1.590127944946289 | acc:0.4001999497413635
Epoch 4, CIFAR-10 Batch 1: cost:1.8239058256149292 | acc:0.3919999897480011
Epoch 4, CIFAR-10 Batch 2: cost:1.7834103107452393 | acc:0.4039999544620514
Epoch 4, CIFAR-10 Batch 3: cost:1.3192576169967651 | acc:0.38259997963905334
Epoch 4, CIFAR-10 Batch 4: cost:1.43719482421875 | acc:0.4139999747276306
Epoch 4, CIFAR-10 Batch 5: cost:1.4808993339538574 | acc:0.4259999394416809
Epoch 5, CIFAR-10 Batch 1: cost:1.6587121486663818 | acc:0.43279996514320374
Epoch 5, CIFAR-10 Batch 2: cost:1.6271240711212158 | acc:0.43379995226860046
Epoch 5, CIFAR-10 Batch 3: cost:1.2092795372009277 | acc:0.42399996519088745
Epoch 5, CIFAR-10 Batch 4: cost:1.3314433097839355 | acc:0.4509999752044678
Epoch 5, CIFAR-10 Batch 5: cost:1.3638802766799927 | acc:0.4551999866962433
Epoch 6, CIFAR-10 Batch 1: cost:1.5008424520492554 | acc:0.4609999656677246
Epoch 6, CIFAR-10 Batch 2: cost:1.3781614303588867 | acc:0.4529999792575836
Epoch 6, CIFAR-10 Batch 3: cost:1.1152021884918213 | acc:0.45479997992515564
Epoch 6, CIFAR-10 Batch 4: cost:1.2265385389328003 | acc:0.4633999466896057
Epoch 6, CIFAR-10 Batch 5: cost:1.3025031089782715 | acc:0.47179996967315674
Epoch 7, CIFAR-10 Batch 1: cost:1.4579485654830933 | acc:0.4593999981880188
Epoch 7, CIFAR-10 Batch 2: cost:1.2291996479034424 | acc:0.478799968957901
Epoch 7, CIFAR-10 Batch 3: cost:0.9918383359909058 | acc:0.4829999804496765
Epoch 7, CIFAR-10 Batch 4: cost:1.1092722415924072 | acc:0.48659995198249817
Epoch 7, CIFAR-10 Batch 5: cost:1.2247194051742554 | acc:0.48959994316101074
Epoch 8, CIFAR-10 Batch 1: cost:1.3482823371887207 | acc:0.482200026512146
Epoch 8, CIFAR-10 Batch 2: cost:1.1363029479980469 | acc:0.47839999198913574
Epoch 8, CIFAR-10 Batch 3: cost:0.9497741460800171 | acc:0.49139994382858276
Epoch 8, CIFAR-10 Batch 4: cost:1.021355152130127 | acc:0.4963999390602112
Epoch 8, CIFAR-10 Batch 5: cost:1.1401851177215576 | acc:0.4957999587059021
Epoch 9, CIFAR-10 Batch 1: cost:1.2159086465835571 | acc:0.4896000027656555
Epoch 9, CIFAR-10 Batch 2: cost:0.9962618350982666 | acc:0.5065999031066895
Epoch 9, CIFAR-10 Batch 3: cost:0.902256190776825 | acc:0.495199978351593
Epoch 9, CIFAR-10 Batch 4: cost:0.9556984901428223 | acc:0.5011999607086182
Epoch 9, CIFAR-10 Batch 5: cost:1.0902888774871826 | acc:0.4975999593734741
Epoch 10, CIFAR-10 Batch 1: cost:1.181735873222351 | acc:0.5031999349594116
Epoch 10, CIFAR-10 Batch 2: cost:0.9206405878067017 | acc:0.511199951171875
Epoch 10, CIFAR-10 Batch 3: cost:0.8229184746742249 | acc:0.5051999092102051
Epoch 10, CIFAR-10 Batch 4: cost:0.8798347115516663 | acc:0.5105999708175659
Epoch 10, CIFAR-10 Batch 5: cost:0.9839009642601013 | acc:0.511199951171875
Epoch 11, CIFAR-10 Batch 1: cost:1.1546474695205688 | acc:0.4813999533653259
Epoch 11, CIFAR-10 Batch 2: cost:0.821304976940155 | acc:0.515999972820282
Epoch 11, CIFAR-10 Batch 3: cost:0.752850353717804 | acc:0.5097999572753906
Epoch 11, CIFAR-10 Batch 4: cost:0.8353023529052734 | acc:0.5099999904632568
Epoch 11, CIFAR-10 Batch 5: cost:0.9178630113601685 | acc:0.5285999178886414
Epoch 12, CIFAR-10 Batch 1: cost:0.9791525602340698 | acc:0.5187999606132507
Epoch 12, CIFAR-10 Batch 2: cost:0.7723967432975769 | acc:0.5173999071121216
Epoch 12, CIFAR-10 Batch 3: cost:0.6873589158058167 | acc:0.520599901676178
Epoch 12, CIFAR-10 Batch 4: cost:0.8091958165168762 | acc:0.515999972820282
Epoch 12, CIFAR-10 Batch 5: cost:0.8204214572906494 | acc:0.5307999849319458
Epoch 13, CIFAR-10 Batch 1: cost:0.9557157754898071 | acc:0.5229999423027039
Epoch 13, CIFAR-10 Batch 2: cost:0.7126266956329346 | acc:0.5221999883651733
Epoch 13, CIFAR-10 Batch 3: cost:0.675835132598877 | acc:0.5257999300956726
Epoch 13, CIFAR-10 Batch 4: cost:0.7276022434234619 | acc:0.5229998826980591
Epoch 13, CIFAR-10 Batch 5: cost:0.7474497556686401 | acc:0.5315999388694763
Epoch 14, CIFAR-10 Batch 1: cost:0.8026830554008484 | acc:0.5359998941421509
Epoch 14, CIFAR-10 Batch 2: cost:0.7084624171257019 | acc:0.5065999627113342
Epoch 14, CIFAR-10 Batch 3: cost:0.6155060529708862 | acc:0.5387999415397644
Epoch 14, CIFAR-10 Batch 4: cost:0.66913902759552 | acc:0.5389999151229858
Epoch 14, CIFAR-10 Batch 5: cost:0.793664813041687 | acc:0.5363999605178833
Epoch 15, CIFAR-10 Batch 1: cost:0.7651166319847107 | acc:0.5401999354362488
Epoch 15, CIFAR-10 Batch 2: cost:0.5752598643302917 | acc:0.5367999076843262
Epoch 15, CIFAR-10 Batch 3: cost:0.6339616775512695 | acc:0.5357999801635742
Epoch 15, CIFAR-10 Batch 4: cost:0.6354700922966003 | acc:0.5321999192237854
Epoch 15, CIFAR-10 Batch 5: cost:0.7169175744056702 | acc:0.5461999177932739
Epoch 16, CIFAR-10 Batch 1: cost:0.7829287648200989 | acc:0.5449999570846558
Epoch 16, CIFAR-10 Batch 2: cost:0.552869439125061 | acc:0.5291999578475952
Epoch 16, CIFAR-10 Batch 3: cost:0.5496835112571716 | acc:0.5455999374389648
Epoch 16, CIFAR-10 Batch 4: cost:0.6116758584976196 | acc:0.5407999157905579
Epoch 16, CIFAR-10 Batch 5: cost:0.6849182844161987 | acc:0.5441999435424805
Epoch 17, CIFAR-10 Batch 1: cost:0.677723228931427 | acc:0.543799877166748
Epoch 17, CIFAR-10 Batch 2: cost:0.4887632727622986 | acc:0.5353999137878418
Epoch 17, CIFAR-10 Batch 3: cost:0.5094462633132935 | acc:0.5525999069213867
Epoch 17, CIFAR-10 Batch 4: cost:0.5247137546539307 | acc:0.5447999238967896
Epoch 17, CIFAR-10 Batch 5: cost:0.5891541838645935 | acc:0.5525999665260315
Epoch 18, CIFAR-10 Batch 1: cost:0.6537779569625854 | acc:0.5463999509811401
Epoch 18, CIFAR-10 Batch 2: cost:0.5222825407981873 | acc:0.5243999361991882
Epoch 18, CIFAR-10 Batch 3: cost:0.46803903579711914 | acc:0.5397999286651611
Epoch 18, CIFAR-10 Batch 4: cost:0.5340467691421509 | acc:0.5399999618530273
Epoch 18, CIFAR-10 Batch 5: cost:0.6000920534133911 | acc:0.5465999245643616
Epoch 19, CIFAR-10 Batch 1: cost:0.6254660487174988 | acc:0.5575999021530151
Epoch 19, CIFAR-10 Batch 2: cost:0.4604285955429077 | acc:0.5523999333381653
Epoch 19, CIFAR-10 Batch 3: cost:0.46425288915634155 | acc:0.5529999732971191
Epoch 19, CIFAR-10 Batch 4: cost:0.4925011396408081 | acc:0.5429999232292175
Epoch 19, CIFAR-10 Batch 5: cost:0.5056983232498169 | acc:0.5523999333381653
Epoch 20, CIFAR-10 Batch 1: cost:0.5557612180709839 | acc:0.5551998615264893
Epoch 20, CIFAR-10 Batch 2: cost:0.4703412652015686 | acc:0.5443999171257019
Epoch 20, CIFAR-10 Batch 3: cost:0.43011295795440674 | acc:0.5535999536514282
Epoch 20, CIFAR-10 Batch 4: cost:0.4499567151069641 | acc:0.5469999313354492
Epoch 20, CIFAR-10 Batch 5: cost:0.49938321113586426 | acc:0.53739994764328
Epoch 21, CIFAR-10 Batch 1: cost:0.5139492750167847 | acc:0.5612000226974487
Epoch 21, CIFAR-10 Batch 2: cost:0.44648870825767517 | acc:0.5461999773979187
Epoch 21, CIFAR-10 Batch 3: cost:0.4504193663597107 | acc:0.53739994764328
Epoch 21, CIFAR-10 Batch 4: cost:0.41757410764694214 | acc:0.5473999381065369
Epoch 21, CIFAR-10 Batch 5: cost:0.4685375690460205 | acc:0.5527999401092529
Epoch 22, CIFAR-10 Batch 1: cost:0.5034701228141785 | acc:0.5561999082565308
Epoch 22, CIFAR-10 Batch 2: cost:0.4200761318206787 | acc:0.5633999109268188
Epoch 22, CIFAR-10 Batch 3: cost:0.4278845489025116 | acc:0.5573999285697937
Epoch 22, CIFAR-10 Batch 4: cost:0.4696508049964905 | acc:0.5453999042510986
Epoch 22, CIFAR-10 Batch 5: cost:0.42764776945114136 | acc:0.5555999875068665
Epoch 23, CIFAR-10 Batch 1: cost:0.5247390270233154 | acc:0.5301999449729919
Epoch 23, CIFAR-10 Batch 2: cost:0.4356013536453247 | acc:0.5655999183654785
Epoch 23, CIFAR-10 Batch 3: cost:0.3852139413356781 | acc:0.547999918460846
Epoch 23, CIFAR-10 Batch 4: cost:0.39140403270721436 | acc:0.5587999820709229
Epoch 23, CIFAR-10 Batch 5: cost:0.3894302546977997 | acc:0.5637999773025513
Epoch 24, CIFAR-10 Batch 1: cost:0.42845824360847473 | acc:0.5539999008178711
Epoch 24, CIFAR-10 Batch 2: cost:0.3835437297821045 | acc:0.5583999156951904
Epoch 24, CIFAR-10 Batch 3: cost:0.40564480423927307 | acc:0.556999921798706
Epoch 24, CIFAR-10 Batch 4: cost:0.4014459252357483 | acc:0.5597999095916748
Epoch 24, CIFAR-10 Batch 5: cost:0.3570186495780945 | acc:0.5633999109268188
Epoch 25, CIFAR-10 Batch 1: cost:0.37854626774787903 | acc:0.572399914264679
Epoch 25, CIFAR-10 Batch 2: cost:0.3530932068824768 | acc:0.5601999163627625
Epoch 25, CIFAR-10 Batch 3: cost:0.36036181449890137 | acc:0.5565999150276184
Epoch 25, CIFAR-10 Batch 4: cost:0.3781532049179077 | acc:0.5607999563217163
Epoch 25, CIFAR-10 Batch 5: cost:0.36744585633277893 | acc:0.5599998831748962
Epoch 26, CIFAR-10 Batch 1: cost:0.36885952949523926 | acc:0.5613999366760254
Epoch 26, CIFAR-10 Batch 2: cost:0.34696173667907715 | acc:0.5633999705314636
Epoch 26, CIFAR-10 Batch 3: cost:0.3486725687980652 | acc:0.555199921131134
Epoch 26, CIFAR-10 Batch 4: cost:0.35743772983551025 | acc:0.5585999488830566
Epoch 26, CIFAR-10 Batch 5: cost:0.34816551208496094 | acc:0.5509998798370361
Epoch 27, CIFAR-10 Batch 1: cost:0.3467990458011627 | acc:0.5677999258041382
Epoch 27, CIFAR-10 Batch 2: cost:0.31971192359924316 | acc:0.5481998920440674
Epoch 27, CIFAR-10 Batch 3: cost:0.335286408662796 | acc:0.5677999258041382
Epoch 27, CIFAR-10 Batch 4: cost:0.2950162887573242 | acc:0.5639999508857727
Epoch 27, CIFAR-10 Batch 5: cost:0.31763768196105957 | acc:0.561199963092804
Epoch 28, CIFAR-10 Batch 1: cost:0.33455365896224976 | acc:0.5575999021530151
Epoch 28, CIFAR-10 Batch 2: cost:0.3029651641845703 | acc:0.5555998682975769
Epoch 28, CIFAR-10 Batch 3: cost:0.3088243901729584 | acc:0.5645999312400818
Epoch 28, CIFAR-10 Batch 4: cost:0.29511770606040955 | acc:0.5571999549865723
Epoch 28, CIFAR-10 Batch 5: cost:0.2784428596496582 | acc:0.5615999102592468
Epoch 29, CIFAR-10 Batch 1: cost:0.30616050958633423 | acc:0.5649999380111694
Epoch 29, CIFAR-10 Batch 2: cost:0.2525205612182617 | acc:0.5673999786376953
Epoch 29, CIFAR-10 Batch 3: cost:0.2804349362850189 | acc:0.5591999292373657
Epoch 29, CIFAR-10 Batch 4: cost:0.30834388732910156 | acc:0.5573999285697937
Epoch 29, CIFAR-10 Batch 5: cost:0.2660523056983948 | acc:0.5615999698638916
Epoch 30, CIFAR-10 Batch 1: cost:0.2876591086387634 | acc:0.5701999068260193
Epoch 30, CIFAR-10 Batch 2: cost:0.235983207821846 | acc:0.5639998912811279
Epoch 30, CIFAR-10 Batch 3: cost:0.26202481985092163 | acc:0.5647999048233032
Epoch 30, CIFAR-10 Batch 4: cost:0.27726536989212036 | acc:0.5489999651908875
Epoch 30, CIFAR-10 Batch 5: cost:0.2587886154651642 | acc:0.571199893951416
Epoch 31, CIFAR-10 Batch 1: cost:0.2809494435787201 | acc:0.555199921131134
Epoch 31, CIFAR-10 Batch 2: cost:0.21445539593696594 | acc:0.5743999481201172
Epoch 31, CIFAR-10 Batch 3: cost:0.21181637048721313 | acc:0.5577999353408813
Epoch 31, CIFAR-10 Batch 4: cost:0.3122013211250305 | acc:0.5565998554229736
Epoch 31, CIFAR-10 Batch 5: cost:0.23973825573921204 | acc:0.5671999454498291
Epoch 32, CIFAR-10 Batch 1: cost:0.2479555904865265 | acc:0.5611999034881592
Epoch 32, CIFAR-10 Batch 2: cost:0.2205001711845398 | acc:0.578999936580658
Epoch 32, CIFAR-10 Batch 3: cost:0.19018948078155518 | acc:0.5751999020576477
Epoch 32, CIFAR-10 Batch 4: cost:0.2313966453075409 | acc:0.5643999576568604
Epoch 32, CIFAR-10 Batch 5: cost:0.2034684121608734 | acc:0.5621999502182007
Epoch 33, CIFAR-10 Batch 1: cost:0.28143155574798584 | acc:0.5525999665260315
Epoch 33, CIFAR-10 Batch 2: cost:0.2087009698152542 | acc:0.5687999129295349
Epoch 33, CIFAR-10 Batch 3: cost:0.19301722943782806 | acc:0.5667999982833862
Epoch 33, CIFAR-10 Batch 4: cost:0.2784227132797241 | acc:0.5659999251365662
Epoch 33, CIFAR-10 Batch 5: cost:0.19279098510742188 | acc:0.5651999711990356
Epoch 34, CIFAR-10 Batch 1: cost:0.2220839262008667 | acc:0.5747998952865601
Epoch 34, CIFAR-10 Batch 2: cost:0.2366575002670288 | acc:0.5747998952865601
Epoch 34, CIFAR-10 Batch 3: cost:0.2168981432914734 | acc:0.5545998811721802
Epoch 34, CIFAR-10 Batch 4: cost:0.22295473515987396 | acc:0.5669999122619629
Epoch 34, CIFAR-10 Batch 5: cost:0.1592303365468979 | acc:0.5667999386787415
Epoch 35, CIFAR-10 Batch 1: cost:0.21385212242603302 | acc:0.5613999366760254
Epoch 35, CIFAR-10 Batch 2: cost:0.18212546408176422 | acc:0.5685999393463135
Epoch 35, CIFAR-10 Batch 3: cost:0.15708868205547333 | acc:0.5491998791694641
Epoch 35, CIFAR-10 Batch 4: cost:0.23244965076446533 | acc:0.5609999299049377
Epoch 35, CIFAR-10 Batch 5: cost:0.1893375813961029 | acc:0.5691999197006226
Epoch 36, CIFAR-10 Batch 1: cost:0.2015538364648819 | acc:0.5559999346733093
Epoch 36, CIFAR-10 Batch 2: cost:0.15944984555244446 | acc:0.5747999548912048
Epoch 36, CIFAR-10 Batch 3: cost:0.16389024257659912 | acc:0.5717998743057251
Epoch 36, CIFAR-10 Batch 4: cost:0.22999079525470734 | acc:0.5649999380111694
Epoch 36, CIFAR-10 Batch 5: cost:0.16838279366493225 | acc:0.5603999495506287
Epoch 37, CIFAR-10 Batch 1: cost:0.1914355754852295 | acc:0.5709999799728394
Epoch 37, CIFAR-10 Batch 2: cost:0.19372287392616272 | acc:0.5709999203681946
Epoch 37, CIFAR-10 Batch 3: cost:0.16093116998672485 | acc:0.5723999738693237
Epoch 37, CIFAR-10 Batch 4: cost:0.18680910766124725 | acc:0.5641999244689941
Epoch 37, CIFAR-10 Batch 5: cost:0.18359413743019104 | acc:0.5729999542236328
Epoch 38, CIFAR-10 Batch 1: cost:0.18936513364315033 | acc:0.5657999515533447
Epoch 38, CIFAR-10 Batch 2: cost:0.12814238667488098 | acc:0.5771999359130859
Epoch 38, CIFAR-10 Batch 3: cost:0.1387743055820465 | acc:0.5663999319076538
Epoch 38, CIFAR-10 Batch 4: cost:0.18614204227924347 | acc:0.5571999549865723
Epoch 38, CIFAR-10 Batch 5: cost:0.1805238425731659 | acc:0.5721999406814575
Epoch 39, CIFAR-10 Batch 1: cost:0.1743970513343811 | acc:0.5623999834060669
Epoch 39, CIFAR-10 Batch 2: cost:0.1129692941904068 | acc:0.571199893951416
Epoch 39, CIFAR-10 Batch 3: cost:0.14158935844898224 | acc:0.5685998797416687
Epoch 39, CIFAR-10 Batch 4: cost:0.15885651111602783 | acc:0.5659999251365662
Epoch 39, CIFAR-10 Batch 5: cost:0.1207718700170517 | acc:0.5663999319076538
Epoch 40, CIFAR-10 Batch 1: cost:0.2087806761264801 | acc:0.560999870300293
Epoch 40, CIFAR-10 Batch 2: cost:0.1092919111251831 | acc:0.5631999373435974
Epoch 40, CIFAR-10 Batch 3: cost:0.09937123954296112 | acc:0.568399965763092
Epoch 40, CIFAR-10 Batch 4: cost:0.1926909238100052 | acc:0.5635998845100403
Epoch 40, CIFAR-10 Batch 5: cost:0.185811847448349 | acc:0.5685999393463135
Epoch 41, CIFAR-10 Batch 1: cost:0.15460683405399323 | acc:0.5593999624252319
Epoch 41, CIFAR-10 Batch 2: cost:0.11478259414434433 | acc:0.5689998865127563
Epoch 41, CIFAR-10 Batch 3: cost:0.11967311054468155 | acc:0.5757999420166016
Epoch 41, CIFAR-10 Batch 4: cost:0.1727485954761505 | acc:0.5703998804092407
Epoch 41, CIFAR-10 Batch 5: cost:0.1479194611310959 | acc:0.5579999089241028
Epoch 42, CIFAR-10 Batch 1: cost:0.19397760927677155 | acc:0.5537999868392944
Epoch 42, CIFAR-10 Batch 2: cost:0.1109868735074997 | acc:0.5763999223709106
Epoch 42, CIFAR-10 Batch 3: cost:0.11605030298233032 | acc:0.5661998987197876
Epoch 42, CIFAR-10 Batch 4: cost:0.1730315089225769 | acc:0.5819998979568481
Epoch 42, CIFAR-10 Batch 5: cost:0.1423846185207367 | acc:0.5823999047279358
Epoch 43, CIFAR-10 Batch 1: cost:0.14751701056957245 | acc:0.5665999054908752
Epoch 43, CIFAR-10 Batch 2: cost:0.0997529998421669 | acc:0.5681999325752258
Epoch 43, CIFAR-10 Batch 3: cost:0.11322760581970215 | acc:0.5643999576568604
Epoch 43, CIFAR-10 Batch 4: cost:0.1772889643907547 | acc:0.5731999278068542
Epoch 43, CIFAR-10 Batch 5: cost:0.1304873526096344 | acc:0.5731999278068542
Epoch 44, CIFAR-10 Batch 1: cost:0.17588570713996887 | acc:0.5655999183654785
Epoch 44, CIFAR-10 Batch 2: cost:0.1142192929983139 | acc:0.5739999413490295
Epoch 44, CIFAR-10 Batch 3: cost:0.11180011928081512 | acc:0.5819998979568481
Epoch 44, CIFAR-10 Batch 4: cost:0.13017721474170685 | acc:0.568399965763092
Epoch 44, CIFAR-10 Batch 5: cost:0.12160354107618332 | acc:0.5645999312400818
Epoch 45, CIFAR-10 Batch 1: cost:0.16726583242416382 | acc:0.5679999589920044
Epoch 45, CIFAR-10 Batch 2: cost:0.09837782382965088 | acc:0.5771999359130859
Epoch 45, CIFAR-10 Batch 3: cost:0.11985199898481369 | acc:0.5651999115943909
Epoch 45, CIFAR-10 Batch 4: cost:0.127051442861557 | acc:0.5695999264717102
Epoch 45, CIFAR-10 Batch 5: cost:0.1282924860715866 | acc:0.5837999582290649
Epoch 46, CIFAR-10 Batch 1: cost:0.1364060789346695 | acc:0.5707999467849731
Epoch 46, CIFAR-10 Batch 2: cost:0.1015179306268692 | acc:0.5771998763084412
Epoch 46, CIFAR-10 Batch 3: cost:0.11106127500534058 | acc:0.5651999711990356
Epoch 46, CIFAR-10 Batch 4: cost:0.13345707952976227 | acc:0.5783998966217041
Epoch 46, CIFAR-10 Batch 5: cost:0.13149556517601013 | acc:0.5731999278068542
Epoch 47, CIFAR-10 Batch 1: cost:0.15949109196662903 | acc:0.5757999420166016
Epoch 47, CIFAR-10 Batch 2: cost:0.08402353525161743 | acc:0.5709999799728394
Epoch 47, CIFAR-10 Batch 3: cost:0.11061365902423859 | acc:0.5639999508857727
Epoch 47, CIFAR-10 Batch 4: cost:0.11236836016178131 | acc:0.5853999257087708
Epoch 47, CIFAR-10 Batch 5: cost:0.15398456156253815 | acc:0.5775998830795288
Epoch 48, CIFAR-10 Batch 1: cost:0.128215491771698 | acc:0.5745999217033386
Epoch 48, CIFAR-10 Batch 2: cost:0.09952539205551147 | acc:0.5825998783111572
Epoch 48, CIFAR-10 Batch 3: cost:0.07674924284219742 | acc:0.5685999393463135
Epoch 48, CIFAR-10 Batch 4: cost:0.14963550865650177 | acc:0.5751999020576477
Epoch 48, CIFAR-10 Batch 5: cost:0.10421529412269592 | acc:0.5779998898506165
Epoch 49, CIFAR-10 Batch 1: cost:0.1186276376247406 | acc:0.5717998743057251
Epoch 49, CIFAR-10 Batch 2: cost:0.07259970158338547 | acc:0.5763998627662659
Epoch 49, CIFAR-10 Batch 3: cost:0.08324670791625977 | acc:0.5617998838424683
Epoch 49, CIFAR-10 Batch 4: cost:0.13398799300193787 | acc:0.5597999095916748
Epoch 49, CIFAR-10 Batch 5: cost:0.12206102907657623 | acc:0.5661998987197876
Epoch 50, CIFAR-10 Batch 1: cost:0.10187442600727081 | acc:0.571199893951416
Epoch 50, CIFAR-10 Batch 2: cost:0.07646170258522034 | acc:0.56659996509552
Epoch 50, CIFAR-10 Batch 3: cost:0.07789275050163269 | acc:0.574199914932251
Epoch 50, CIFAR-10 Batch 4: cost:0.13524091243743896 | acc:0.5689999461174011
Epoch 50, CIFAR-10 Batch 5: cost:0.1125338152050972 | acc:0.5673999786376953
Epoch 51, CIFAR-10 Batch 1: cost:0.11284809559583664 | acc:0.5755999088287354
Epoch 51, CIFAR-10 Batch 2: cost:0.09134554862976074 | acc:0.5785998702049255
Epoch 51, CIFAR-10 Batch 3: cost:0.07018843293190002 | acc:0.5751999616622925
Epoch 51, CIFAR-10 Batch 4: cost:0.061725225299596786 | acc:0.5743999481201172
Epoch 51, CIFAR-10 Batch 5: cost:0.09348134696483612 | acc:0.5751999020576477
Epoch 52, CIFAR-10 Batch 1: cost:0.09672576934099197 | acc:0.5787999033927917
Epoch 52, CIFAR-10 Batch 2: cost:0.07252807170152664 | acc:0.578999936580658
Epoch 52, CIFAR-10 Batch 3: cost:0.08423647284507751 | acc:0.5715999603271484
Epoch 52, CIFAR-10 Batch 4: cost:0.09236466139554977 | acc:0.5785999298095703
Epoch 52, CIFAR-10 Batch 5: cost:0.08754651248455048 | acc:0.5719999074935913
Epoch 53, CIFAR-10 Batch 1: cost:0.11256758123636246 | acc:0.574999988079071
Epoch 53, CIFAR-10 Batch 2: cost:0.08792898058891296 | acc:0.5697999000549316
Epoch 53, CIFAR-10 Batch 3: cost:0.06853397935628891 | acc:0.5801999568939209
Epoch 53, CIFAR-10 Batch 4: cost:0.09134284406900406 | acc:0.5779999494552612
Epoch 53, CIFAR-10 Batch 5: cost:0.08791206032037735 | acc:0.5751999020576477
Epoch 54, CIFAR-10 Batch 1: cost:0.1353539675474167 | acc:0.5773999691009521
Epoch 54, CIFAR-10 Batch 2: cost:0.10359365493059158 | acc:0.5699999332427979
Epoch 54, CIFAR-10 Batch 3: cost:0.04813389480113983 | acc:0.5789998769760132
Epoch 54, CIFAR-10 Batch 4: cost:0.09574723243713379 | acc:0.5735999345779419
Epoch 54, CIFAR-10 Batch 5: cost:0.08054617047309875 | acc:0.5787999033927917
Epoch 55, CIFAR-10 Batch 1: cost:0.11770103126764297 | acc:0.5751999020576477
Epoch 55, CIFAR-10 Batch 2: cost:0.0910612940788269 | acc:0.5785998702049255
Epoch 55, CIFAR-10 Batch 3: cost:0.05680608004331589 | acc:0.5803999304771423
Epoch 55, CIFAR-10 Batch 4: cost:0.07638224959373474 | acc:0.5785999298095703
Epoch 55, CIFAR-10 Batch 5: cost:0.07135013490915298 | acc:0.5817999243736267
Epoch 56, CIFAR-10 Batch 1: cost:0.09587933123111725 | acc:0.5773999094963074
Epoch 56, CIFAR-10 Batch 2: cost:0.08470194041728973 | acc:0.5837998986244202
Epoch 56, CIFAR-10 Batch 3: cost:0.05206315964460373 | acc:0.5827999114990234
Epoch 56, CIFAR-10 Batch 4: cost:0.06333940476179123 | acc:0.5837999582290649
Epoch 56, CIFAR-10 Batch 5: cost:0.07255814224481583 | acc:0.5695999264717102
Epoch 57, CIFAR-10 Batch 1: cost:0.09125135093927383 | acc:0.5785999298095703
Epoch 57, CIFAR-10 Batch 2: cost:0.0787866860628128 | acc:0.5687999725341797
Epoch 57, CIFAR-10 Batch 3: cost:0.04441005736589432 | acc:0.5870000123977661
Epoch 57, CIFAR-10 Batch 4: cost:0.0698433518409729 | acc:0.5787999033927917
Epoch 57, CIFAR-10 Batch 5: cost:0.0692308321595192 | acc:0.5815999507904053
Epoch 58, CIFAR-10 Batch 1: cost:0.0837811678647995 | acc:0.5719999670982361
Epoch 58, CIFAR-10 Batch 2: cost:0.06581699848175049 | acc:0.5837998986244202
Epoch 58, CIFAR-10 Batch 3: cost:0.05653419345617294 | acc:0.5811998844146729
Epoch 58, CIFAR-10 Batch 4: cost:0.05737585574388504 | acc:0.584399938583374
Epoch 58, CIFAR-10 Batch 5: cost:0.07289010286331177 | acc:0.5697999000549316
Epoch 59, CIFAR-10 Batch 1: cost:0.08060608059167862 | acc:0.5759999752044678
Epoch 59, CIFAR-10 Batch 2: cost:0.08455666899681091 | acc:0.5793999433517456
Epoch 59, CIFAR-10 Batch 3: cost:0.045075923204422 | acc:0.5853999257087708
Epoch 59, CIFAR-10 Batch 4: cost:0.06690305471420288 | acc:0.5875999331474304
Epoch 59, CIFAR-10 Batch 5: cost:0.06781791150569916 | acc:0.5779999494552612
Epoch 60, CIFAR-10 Batch 1: cost:0.08580511063337326 | acc:0.5867999196052551
Epoch 60, CIFAR-10 Batch 2: cost:0.10105253756046295 | acc:0.5821999907493591
Epoch 60, CIFAR-10 Batch 3: cost:0.05769956111907959 | acc:0.5761999487876892
Epoch 60, CIFAR-10 Batch 4: cost:0.07927092909812927 | acc:0.5817999243736267
Epoch 60, CIFAR-10 Batch 5: cost:0.07647232711315155 | acc:0.5751999616622925
Epoch 61, CIFAR-10 Batch 1: cost:0.08654149621725082 | acc:0.5763999223709106
Epoch 61, CIFAR-10 Batch 2: cost:0.09775059670209885 | acc:0.5625999569892883
Epoch 61, CIFAR-10 Batch 3: cost:0.07532568275928497 | acc:0.5831999182701111
Epoch 61, CIFAR-10 Batch 4: cost:0.10576699674129486 | acc:0.5735999345779419
Epoch 61, CIFAR-10 Batch 5: cost:0.07788680493831635 | acc:0.5793998837471008
Epoch 62, CIFAR-10 Batch 1: cost:0.07951143383979797 | acc:0.5765999555587769
Epoch 62, CIFAR-10 Batch 2: cost:0.04805050790309906 | acc:0.5741999745368958
Epoch 62, CIFAR-10 Batch 3: cost:0.04333284869790077 | acc:0.5867999196052551
Epoch 62, CIFAR-10 Batch 4: cost:0.07147809863090515 | acc:0.5809999704360962
Epoch 62, CIFAR-10 Batch 5: cost:0.09629753977060318 | acc:0.5837999582290649
Epoch 63, CIFAR-10 Batch 1: cost:0.1007155030965805 | acc:0.5829999446868896
Epoch 63, CIFAR-10 Batch 2: cost:0.08599335700273514 | acc:0.5779998898506165
Epoch 63, CIFAR-10 Batch 3: cost:0.055674318224191666 | acc:0.5837999582290649
Epoch 63, CIFAR-10 Batch 4: cost:0.05261635780334473 | acc:0.5793998837471008
Epoch 63, CIFAR-10 Batch 5: cost:0.07232286781072617 | acc:0.5831999778747559
Epoch 64, CIFAR-10 Batch 1: cost:0.10108523070812225 | acc:0.5823999643325806
Epoch 64, CIFAR-10 Batch 2: cost:0.06610235571861267 | acc:0.5743998885154724
Epoch 64, CIFAR-10 Batch 3: cost:0.04371269792318344 | acc:0.5895999073982239
Epoch 64, CIFAR-10 Batch 4: cost:0.05926789343357086 | acc:0.5841999053955078
Epoch 64, CIFAR-10 Batch 5: cost:0.07047875225543976 | acc:0.5847998857498169
Epoch 65, CIFAR-10 Batch 1: cost:0.07589234411716461 | acc:0.5821999907493591
Epoch 65, CIFAR-10 Batch 2: cost:0.0660470500588417 | acc:0.5733999609947205
Epoch 65, CIFAR-10 Batch 3: cost:0.046616967767477036 | acc:0.5821999311447144
Epoch 65, CIFAR-10 Batch 4: cost:0.0598917156457901 | acc:0.5845999121665955
Epoch 65, CIFAR-10 Batch 5: cost:0.05663027614355087 | acc:0.5843998789787292
Epoch 66, CIFAR-10 Batch 1: cost:0.07470469176769257 | acc:0.5775999426841736
Epoch 66, CIFAR-10 Batch 2: cost:0.06073373556137085 | acc:0.5755999684333801
Epoch 66, CIFAR-10 Batch 3: cost:0.07052967697381973 | acc:0.5813999176025391
Epoch 66, CIFAR-10 Batch 4: cost:0.048704393208026886 | acc:0.5812000036239624
Epoch 66, CIFAR-10 Batch 5: cost:0.07863933593034744 | acc:0.578999936580658
Epoch 67, CIFAR-10 Batch 1: cost:0.07982654124498367 | acc:0.5779998302459717
Epoch 67, CIFAR-10 Batch 2: cost:0.04857884719967842 | acc:0.5721999406814575
Epoch 67, CIFAR-10 Batch 3: cost:0.04058465361595154 | acc:0.5799999833106995
Epoch 67, CIFAR-10 Batch 4: cost:0.05848638713359833 | acc:0.5795998573303223
Epoch 67, CIFAR-10 Batch 5: cost:0.05985410884022713 | acc:0.5887999534606934
Epoch 68, CIFAR-10 Batch 1: cost:0.07439922541379929 | acc:0.5865998864173889
Epoch 68, CIFAR-10 Batch 2: cost:0.04845826327800751 | acc:0.5661999583244324
Epoch 68, CIFAR-10 Batch 3: cost:0.027892420068383217 | acc:0.5869999527931213
Epoch 68, CIFAR-10 Batch 4: cost:0.06959915906190872 | acc:0.5755999088287354
Epoch 68, CIFAR-10 Batch 5: cost:0.061151113361120224 | acc:0.5885999202728271
Epoch 69, CIFAR-10 Batch 1: cost:0.04912324622273445 | acc:0.5787999629974365
Epoch 69, CIFAR-10 Batch 2: cost:0.04750634729862213 | acc:0.5727998614311218
Epoch 69, CIFAR-10 Batch 3: cost:0.03650601580739021 | acc:0.5851999521255493
Epoch 69, CIFAR-10 Batch 4: cost:0.04510103911161423 | acc:0.5909998416900635
Epoch 69, CIFAR-10 Batch 5: cost:0.05727149918675423 | acc:0.5761999487876892
Epoch 70, CIFAR-10 Batch 1: cost:0.07179152220487595 | acc:0.5679998993873596
Epoch 70, CIFAR-10 Batch 2: cost:0.04324134811758995 | acc:0.569399893283844
Epoch 70, CIFAR-10 Batch 3: cost:0.035174835473299026 | acc:0.5851999521255493
Epoch 70, CIFAR-10 Batch 4: cost:0.04912249743938446 | acc:0.5791999101638794
Epoch 70, CIFAR-10 Batch 5: cost:0.0705173909664154 | acc:0.5811999440193176
Epoch 71, CIFAR-10 Batch 1: cost:0.06645020842552185 | acc:0.5751999616622925
Epoch 71, CIFAR-10 Batch 2: cost:0.04007841274142265 | acc:0.5729999542236328
Epoch 71, CIFAR-10 Batch 3: cost:0.029186083003878593 | acc:0.5879998803138733
Epoch 71, CIFAR-10 Batch 4: cost:0.04690339416265488 | acc:0.5875999331474304
Epoch 71, CIFAR-10 Batch 5: cost:0.06119289994239807 | acc:0.5827999711036682
Epoch 72, CIFAR-10 Batch 1: cost:0.04294387251138687 | acc:0.5757999420166016
Epoch 72, CIFAR-10 Batch 2: cost:0.04500843957066536 | acc:0.571199893951416
Epoch 72, CIFAR-10 Batch 3: cost:0.05041763186454773 | acc:0.5861998796463013
Epoch 72, CIFAR-10 Batch 4: cost:0.06519293785095215 | acc:0.5827999114990234
Epoch 72, CIFAR-10 Batch 5: cost:0.06174691766500473 | acc:0.5771999359130859
Epoch 73, CIFAR-10 Batch 1: cost:0.05298212170600891 | acc:0.5765999555587769
Epoch 73, CIFAR-10 Batch 2: cost:0.04024761542677879 | acc:0.5753998756408691
Epoch 73, CIFAR-10 Batch 3: cost:0.0515705868601799 | acc:0.5709999203681946
Epoch 73, CIFAR-10 Batch 4: cost:0.05038128048181534 | acc:0.5845999121665955
Epoch 73, CIFAR-10 Batch 5: cost:0.05993536859750748 | acc:0.5827998518943787
Epoch 74, CIFAR-10 Batch 1: cost:0.04495390132069588 | acc:0.5785999298095703
Epoch 74, CIFAR-10 Batch 2: cost:0.040767498314380646 | acc:0.5689999461174011
Epoch 74, CIFAR-10 Batch 3: cost:0.04113897681236267 | acc:0.5815999507904053
Epoch 74, CIFAR-10 Batch 4: cost:0.04859336465597153 | acc:0.5803999900817871
Epoch 74, CIFAR-10 Batch 5: cost:0.04811674356460571 | acc:0.5877999067306519
Epoch 75, CIFAR-10 Batch 1: cost:0.028219586238265038 | acc:0.5759999752044678
Epoch 75, CIFAR-10 Batch 2: cost:0.03950602188706398 | acc:0.5705999135971069
Epoch 75, CIFAR-10 Batch 3: cost:0.048342201858758926 | acc:0.5639999508857727
Epoch 75, CIFAR-10 Batch 4: cost:0.05644899606704712 | acc:0.5769999027252197
Epoch 75, CIFAR-10 Batch 5: cost:0.03861263394355774 | acc:0.5825998783111572
Epoch 76, CIFAR-10 Batch 1: cost:0.035181187093257904 | acc:0.5821999311447144
Epoch 76, CIFAR-10 Batch 2: cost:0.06133095547556877 | acc:0.5763999223709106
Epoch 76, CIFAR-10 Batch 3: cost:0.023170892149209976 | acc:0.5695999264717102
Epoch 76, CIFAR-10 Batch 4: cost:0.03877647593617439 | acc:0.5773999094963074
Epoch 76, CIFAR-10 Batch 5: cost:0.038942862302064896 | acc:0.5923999547958374
Epoch 77, CIFAR-10 Batch 1: cost:0.02564072236418724 | acc:0.5821999907493591
Epoch 77, CIFAR-10 Batch 2: cost:0.04572966694831848 | acc:0.5787999033927917
Epoch 77, CIFAR-10 Batch 3: cost:0.03355970233678818 | acc:0.5765998959541321
Epoch 77, CIFAR-10 Batch 4: cost:0.04307010769844055 | acc:0.5895999073982239
Epoch 77, CIFAR-10 Batch 5: cost:0.04011790454387665 | acc:0.58079993724823
Epoch 78, CIFAR-10 Batch 1: cost:0.028234947472810745 | acc:0.5829998850822449
Epoch 78, CIFAR-10 Batch 2: cost:0.047371070832014084 | acc:0.572999894618988
Epoch 78, CIFAR-10 Batch 3: cost:0.026095671579241753 | acc:0.5707999467849731
Epoch 78, CIFAR-10 Batch 4: cost:0.0473274327814579 | acc:0.5755999088287354
Epoch 78, CIFAR-10 Batch 5: cost:0.0460839718580246 | acc:0.5743998885154724
Epoch 79, CIFAR-10 Batch 1: cost:0.03477157652378082 | acc:0.5761999487876892
Epoch 79, CIFAR-10 Batch 2: cost:0.05264396592974663 | acc:0.5795999765396118
Epoch 79, CIFAR-10 Batch 3: cost:0.031906649470329285 | acc:0.5805999636650085
Epoch 79, CIFAR-10 Batch 4: cost:0.05570080131292343 | acc:0.5677999258041382
Epoch 79, CIFAR-10 Batch 5: cost:0.034207746386528015 | acc:0.5841999053955078
Epoch 80, CIFAR-10 Batch 1: cost:0.03176223859190941 | acc:0.585599958896637
Epoch 80, CIFAR-10 Batch 2: cost:0.04185652732849121 | acc:0.5765998959541321
Epoch 80, CIFAR-10 Batch 3: cost:0.018045959994196892 | acc:0.5817998647689819
Epoch 80, CIFAR-10 Batch 4: cost:0.03883352875709534 | acc:0.5815999507904053
Epoch 80, CIFAR-10 Batch 5: cost:0.018957747146487236 | acc:0.5885999202728271
Epoch 81, CIFAR-10 Batch 1: cost:0.020500315353274345 | acc:0.5829998850822449
Epoch 81, CIFAR-10 Batch 2: cost:0.04815497249364853 | acc:0.568199872970581
Epoch 81, CIFAR-10 Batch 3: cost:0.031901922076940536 | acc:0.5697999596595764
Epoch 81, CIFAR-10 Batch 4: cost:0.048272233456373215 | acc:0.5791999101638794
Epoch 81, CIFAR-10 Batch 5: cost:0.0365154892206192 | acc:0.584399938583374
Epoch 82, CIFAR-10 Batch 1: cost:0.020953886210918427 | acc:0.5809999704360962
Epoch 82, CIFAR-10 Batch 2: cost:0.03969942405819893 | acc:0.5815998911857605
Epoch 82, CIFAR-10 Batch 3: cost:0.018238814547657967 | acc:0.5749999284744263
Epoch 82, CIFAR-10 Batch 4: cost:0.05305451154708862 | acc:0.5787999033927917
Epoch 82, CIFAR-10 Batch 5: cost:0.02014504186809063 | acc:0.5783998966217041
Epoch 83, CIFAR-10 Batch 1: cost:0.0368976816534996 | acc:0.5905998945236206
Epoch 83, CIFAR-10 Batch 2: cost:0.029723580926656723 | acc:0.5865999460220337
Epoch 83, CIFAR-10 Batch 3: cost:0.029224473983049393 | acc:0.5765999555587769
Epoch 83, CIFAR-10 Batch 4: cost:0.042657043784856796 | acc:0.5843998789787292
Epoch 83, CIFAR-10 Batch 5: cost:0.03991813585162163 | acc:0.5773999094963074
Epoch 84, CIFAR-10 Batch 1: cost:0.023963268846273422 | acc:0.5867999196052551
Epoch 84, CIFAR-10 Batch 2: cost:0.053629472851753235 | acc:0.5737999081611633
Epoch 84, CIFAR-10 Batch 3: cost:0.022467438131570816 | acc:0.5811999440193176
Epoch 84, CIFAR-10 Batch 4: cost:0.040753480046987534 | acc:0.5755999088287354
Epoch 84, CIFAR-10 Batch 5: cost:0.026314225047826767 | acc:0.5729999542236328
Epoch 85, CIFAR-10 Batch 1: cost:0.016294334083795547 | acc:0.5887998938560486
Epoch 85, CIFAR-10 Batch 2: cost:0.038792889565229416 | acc:0.5845999121665955
Epoch 85, CIFAR-10 Batch 3: cost:0.01727244071662426 | acc:0.5867999196052551
Epoch 85, CIFAR-10 Batch 4: cost:0.03848545253276825 | acc:0.5803999304771423
Epoch 85, CIFAR-10 Batch 5: cost:0.03735606372356415 | acc:0.5815999507904053
Epoch 86, CIFAR-10 Batch 1: cost:0.02697134017944336 | acc:0.5841999650001526
Epoch 86, CIFAR-10 Batch 2: cost:0.031472574919462204 | acc:0.5841999650001526
Epoch 86, CIFAR-10 Batch 3: cost:0.014380613341927528 | acc:0.5775998830795288
Epoch 86, CIFAR-10 Batch 4: cost:0.05496642738580704 | acc:0.5797998905181885
Epoch 86, CIFAR-10 Batch 5: cost:0.02636132389307022 | acc:0.5749999284744263
Epoch 87, CIFAR-10 Batch 1: cost:0.02346072904765606 | acc:0.5811998844146729
Epoch 87, CIFAR-10 Batch 2: cost:0.030577898025512695 | acc:0.5895999073982239
Epoch 87, CIFAR-10 Batch 3: cost:0.018168117851018906 | acc:0.5779999494552612
Epoch 87, CIFAR-10 Batch 4: cost:0.03251676633954048 | acc:0.58079993724823
Epoch 87, CIFAR-10 Batch 5: cost:0.028796445578336716 | acc:0.5767998695373535
Epoch 88, CIFAR-10 Batch 1: cost:0.026518985629081726 | acc:0.5853999257087708
Epoch 88, CIFAR-10 Batch 2: cost:0.02551758848130703 | acc:0.582599937915802
Epoch 88, CIFAR-10 Batch 3: cost:0.011716351844370365 | acc:0.5719999074935913
Epoch 88, CIFAR-10 Batch 4: cost:0.029935544356703758 | acc:0.5889999270439148
Epoch 88, CIFAR-10 Batch 5: cost:0.04645022749900818 | acc:0.572999894618988
Epoch 89, CIFAR-10 Batch 1: cost:0.02721814438700676 | acc:0.579599916934967
Epoch 89, CIFAR-10 Batch 2: cost:0.023785043507814407 | acc:0.5845999717712402
Epoch 89, CIFAR-10 Batch 3: cost:0.017400024458765984 | acc:0.5747998952865601
Epoch 89, CIFAR-10 Batch 4: cost:0.02297266572713852 | acc:0.5793999433517456
Epoch 89, CIFAR-10 Batch 5: cost:0.03564213961362839 | acc:0.5701999068260193
Epoch 90, CIFAR-10 Batch 1: cost:0.021576233208179474 | acc:0.5853999257087708
Epoch 90, CIFAR-10 Batch 2: cost:0.018170226365327835 | acc:0.5935998558998108
Epoch 90, CIFAR-10 Batch 3: cost:0.019535398110747337 | acc:0.5771998763084412
Epoch 90, CIFAR-10 Batch 4: cost:0.026029929518699646 | acc:0.5779999494552612
Epoch 90, CIFAR-10 Batch 5: cost:0.0321507565677166 | acc:0.5827999114990234
Epoch 91, CIFAR-10 Batch 1: cost:0.02522076666355133 | acc:0.5857999324798584
Epoch 91, CIFAR-10 Batch 2: cost:0.01802179031074047 | acc:0.5821998715400696
Epoch 91, CIFAR-10 Batch 3: cost:0.01223494578152895 | acc:0.574199914932251
Epoch 91, CIFAR-10 Batch 4: cost:0.02433980442583561 | acc:0.5865999460220337
Epoch 91, CIFAR-10 Batch 5: cost:0.0171340499073267 | acc:0.5667999386787415
Epoch 92, CIFAR-10 Batch 1: cost:0.027747292071580887 | acc:0.5757999420166016
Epoch 92, CIFAR-10 Batch 2: cost:0.03042982891201973 | acc:0.5825998783111572
Epoch 92, CIFAR-10 Batch 3: cost:0.01505883876234293 | acc:0.5773999094963074
Epoch 92, CIFAR-10 Batch 4: cost:0.02165454998612404 | acc:0.5859999060630798
Epoch 92, CIFAR-10 Batch 5: cost:0.0322972796857357 | acc:0.5765999555587769
Epoch 93, CIFAR-10 Batch 1: cost:0.01696450263261795 | acc:0.58079993724823
Epoch 93, CIFAR-10 Batch 2: cost:0.02454318106174469 | acc:0.5809999108314514
Epoch 93, CIFAR-10 Batch 3: cost:0.010320421308279037 | acc:0.577799916267395
Epoch 93, CIFAR-10 Batch 4: cost:0.024457469582557678 | acc:0.586199939250946
Epoch 93, CIFAR-10 Batch 5: cost:0.036552321165800095 | acc:0.5761999487876892
Epoch 94, CIFAR-10 Batch 1: cost:0.0269392728805542 | acc:0.5809998512268066
Epoch 94, CIFAR-10 Batch 2: cost:0.019842322915792465 | acc:0.5749999284744263
Epoch 94, CIFAR-10 Batch 3: cost:0.012759489938616753 | acc:0.5809999108314514
Epoch 94, CIFAR-10 Batch 4: cost:0.028688253834843636 | acc:0.5837998986244202
Epoch 94, CIFAR-10 Batch 5: cost:0.023526784032583237 | acc:0.5805999636650085
Epoch 95, CIFAR-10 Batch 1: cost:0.019604165107011795 | acc:0.5719999670982361
Epoch 95, CIFAR-10 Batch 2: cost:0.016455205157399178 | acc:0.5812000036239624
Epoch 95, CIFAR-10 Batch 3: cost:0.021444780752062798 | acc:0.5761999487876892
Epoch 95, CIFAR-10 Batch 4: cost:0.015967214480042458 | acc:0.5947999954223633
Epoch 95, CIFAR-10 Batch 5: cost:0.018641462549567223 | acc:0.5805999636650085
Epoch 96, CIFAR-10 Batch 1: cost:0.009694930166006088 | acc:0.5905998945236206
Epoch 96, CIFAR-10 Batch 2: cost:0.02248542569577694 | acc:0.5783999562263489
Epoch 96, CIFAR-10 Batch 3: cost:0.011599697172641754 | acc:0.5879999399185181
Epoch 96, CIFAR-10 Batch 4: cost:0.022754907608032227 | acc:0.5879998803138733
Epoch 96, CIFAR-10 Batch 5: cost:0.03277900815010071 | acc:0.572399914264679
Epoch 97, CIFAR-10 Batch 1: cost:0.01425120048224926 | acc:0.5807998776435852
Epoch 97, CIFAR-10 Batch 2: cost:0.02378598414361477 | acc:0.5855998992919922
Epoch 97, CIFAR-10 Batch 3: cost:0.013585295528173447 | acc:0.5809999108314514
Epoch 97, CIFAR-10 Batch 4: cost:0.018065746873617172 | acc:0.6001999378204346
Epoch 97, CIFAR-10 Batch 5: cost:0.021680153906345367 | acc:0.5751999616622925
Epoch 98, CIFAR-10 Batch 1: cost:0.013587555848062038 | acc:0.577799916267395
Epoch 98, CIFAR-10 Batch 2: cost:0.01573627069592476 | acc:0.5811998844146729
Epoch 98, CIFAR-10 Batch 3: cost:0.010092217475175858 | acc:0.5797999501228333
Epoch 98, CIFAR-10 Batch 4: cost:0.013200436718761921 | acc:0.5925999283790588
Epoch 98, CIFAR-10 Batch 5: cost:0.017089620232582092 | acc:0.5733999013900757
Epoch 99, CIFAR-10 Batch 1: cost:0.023402610793709755 | acc:0.5791999697685242
Epoch 99, CIFAR-10 Batch 2: cost:0.014317245222628117 | acc:0.567599892616272
Epoch 99, CIFAR-10 Batch 3: cost:0.019597727805376053 | acc:0.5659999251365662
Epoch 99, CIFAR-10 Batch 4: cost:0.012778358533978462 | acc:0.5947998762130737
Epoch 99, CIFAR-10 Batch 5: cost:0.03495368734002113 | acc:0.5765998959541321
Epoch 100, CIFAR-10 Batch 1: cost:0.015373659320175648 | acc:0.5847998857498169
Epoch 100, CIFAR-10 Batch 2: cost:0.013422822579741478 | acc:0.5785999298095703
Epoch 100, CIFAR-10 Batch 3: cost:0.008656156249344349 | acc:0.5767999291419983
Epoch 100, CIFAR-10 Batch 4: cost:0.017665492370724678 | acc:0.5957999229431152
Epoch 100, CIFAR-10 Batch 5: cost:0.022597182542085648 | acc:0.5753999352455139
Epoch 101, CIFAR-10 Batch 1: cost:0.014691730029881 | acc:0.5899999141693115
Epoch 101, CIFAR-10 Batch 2: cost:0.014002989046275616 | acc:0.5757999420166016
Epoch 101, CIFAR-10 Batch 3: cost:0.011992031708359718 | acc:0.5793999433517456
Epoch 101, CIFAR-10 Batch 4: cost:0.013448852114379406 | acc:0.5895999073982239
Epoch 101, CIFAR-10 Batch 5: cost:0.01644119992852211 | acc:0.5843999981880188
Epoch 102, CIFAR-10 Batch 1: cost:0.012011315673589706 | acc:0.5923998951911926
Epoch 102, CIFAR-10 Batch 2: cost:0.009291229769587517 | acc:0.577799916267395
Epoch 102, CIFAR-10 Batch 3: cost:0.028560329228639603 | acc:0.5711999535560608
Epoch 102, CIFAR-10 Batch 4: cost:0.016347631812095642 | acc:0.5955999493598938
Epoch 102, CIFAR-10 Batch 5: cost:0.0243535153567791 | acc:0.5759999752044678
Epoch 103, CIFAR-10 Batch 1: cost:0.012001295574009418 | acc:0.5831999182701111
Epoch 103, CIFAR-10 Batch 2: cost:0.0136526208370924 | acc:0.5807998776435852
Epoch 103, CIFAR-10 Batch 3: cost:0.00767988758161664 | acc:0.5833999514579773
Epoch 103, CIFAR-10 Batch 4: cost:0.009045644663274288 | acc:0.5959998965263367
Epoch 103, CIFAR-10 Batch 5: cost:0.016102051362395287 | acc:0.5809999704360962
Epoch 104, CIFAR-10 Batch 1: cost:0.01566058024764061 | acc:0.5917999744415283
Epoch 104, CIFAR-10 Batch 2: cost:0.006432424299418926 | acc:0.5831999182701111
Epoch 104, CIFAR-10 Batch 3: cost:0.008450118824839592 | acc:0.5851999521255493
Epoch 104, CIFAR-10 Batch 4: cost:0.01233205758035183 | acc:0.598599910736084
Epoch 104, CIFAR-10 Batch 5: cost:0.026390179991722107 | acc:0.5737999677658081
Epoch 105, CIFAR-10 Batch 1: cost:0.024623630568385124 | acc:0.5895999073982239
Epoch 105, CIFAR-10 Batch 2: cost:0.010494377464056015 | acc:0.5869999527931213
Epoch 105, CIFAR-10 Batch 3: cost:0.005788926966488361 | acc:0.5797998905181885
Epoch 105, CIFAR-10 Batch 4: cost:0.01174083910882473 | acc:0.5865999460220337
Epoch 105, CIFAR-10 Batch 5: cost:0.018722323700785637 | acc:0.5809999108314514
Epoch 106, CIFAR-10 Batch 1: cost:0.01740686595439911 | acc:0.5951999425888062
Epoch 106, CIFAR-10 Batch 2: cost:0.008346270769834518 | acc:0.5883998870849609
Epoch 106, CIFAR-10 Batch 3: cost:0.009881890378892422 | acc:0.5863999128341675
Epoch 106, CIFAR-10 Batch 4: cost:0.01031981036067009 | acc:0.5907999277114868
Epoch 106, CIFAR-10 Batch 5: cost:0.020143870264291763 | acc:0.5893999338150024
Epoch 107, CIFAR-10 Batch 1: cost:0.014136760495603085 | acc:0.5925998687744141
Epoch 107, CIFAR-10 Batch 2: cost:0.010134294629096985 | acc:0.5799999237060547
Epoch 107, CIFAR-10 Batch 3: cost:0.004415726289153099 | acc:0.5867999196052551
Epoch 107, CIFAR-10 Batch 4: cost:0.009029476903378963 | acc:0.5923999547958374
Epoch 107, CIFAR-10 Batch 5: cost:0.020723732188344002 | acc:0.5725999474525452
Epoch 108, CIFAR-10 Batch 1: cost:0.021441008895635605 | acc:0.5893999338150024
Epoch 108, CIFAR-10 Batch 2: cost:0.0095272371545434 | acc:0.5757998824119568
Epoch 108, CIFAR-10 Batch 3: cost:0.005690528079867363 | acc:0.5865999460220337
Epoch 108, CIFAR-10 Batch 4: cost:0.014453185722231865 | acc:0.5873998403549194
Epoch 108, CIFAR-10 Batch 5: cost:0.02027156949043274 | acc:0.5887999534606934
Epoch 109, CIFAR-10 Batch 1: cost:0.009874920360744 | acc:0.5853999257087708
Epoch 109, CIFAR-10 Batch 2: cost:0.012867078185081482 | acc:0.5769999027252197
Epoch 109, CIFAR-10 Batch 3: cost:0.00916028581559658 | acc:0.5791999101638794
Epoch 109, CIFAR-10 Batch 4: cost:0.011999152600765228 | acc:0.5837998986244202
Epoch 109, CIFAR-10 Batch 5: cost:0.014909865334630013 | acc:0.5745999217033386
Epoch 110, CIFAR-10 Batch 1: cost:0.022951018065214157 | acc:0.5847998857498169
Epoch 110, CIFAR-10 Batch 2: cost:0.009785955771803856 | acc:0.5769999027252197
Epoch 110, CIFAR-10 Batch 3: cost:0.007512732874602079 | acc:0.5705999135971069
Epoch 110, CIFAR-10 Batch 4: cost:0.009640310890972614 | acc:0.5885999202728271
Epoch 110, CIFAR-10 Batch 5: cost:0.00998635869473219 | acc:0.5805999040603638
Epoch 111, CIFAR-10 Batch 1: cost:0.012841367162764072 | acc:0.5923998951911926
Epoch 111, CIFAR-10 Batch 2: cost:0.013798597268760204 | acc:0.5761999487876892
Epoch 111, CIFAR-10 Batch 3: cost:0.009130803868174553 | acc:0.5809999108314514
Epoch 111, CIFAR-10 Batch 4: cost:0.01349855586886406 | acc:0.585399866104126
Epoch 111, CIFAR-10 Batch 5: cost:0.01614917255938053 | acc:0.582599937915802
Epoch 112, CIFAR-10 Batch 1: cost:0.022230956703424454 | acc:0.5887998938560486
Epoch 112, CIFAR-10 Batch 2: cost:0.015011042356491089 | acc:0.5871999263763428
Epoch 112, CIFAR-10 Batch 3: cost:0.009180638939142227 | acc:0.5703999400138855
Epoch 112, CIFAR-10 Batch 4: cost:0.013722767122089863 | acc:0.5835999846458435
Epoch 112, CIFAR-10 Batch 5: cost:0.023178480565547943 | acc:0.5813999176025391
Epoch 113, CIFAR-10 Batch 1: cost:0.01065256167203188 | acc:0.5753998756408691
Epoch 113, CIFAR-10 Batch 2: cost:0.014552385546267033 | acc:0.5859999656677246
Epoch 113, CIFAR-10 Batch 3: cost:0.0033647241070866585 | acc:0.5863999724388123
Epoch 113, CIFAR-10 Batch 4: cost:0.01355825550854206 | acc:0.5812000036239624
Epoch 113, CIFAR-10 Batch 5: cost:0.00932264607399702 | acc:0.5761998891830444
Epoch 114, CIFAR-10 Batch 1: cost:0.016863340511918068 | acc:0.5791999101638794
Epoch 114, CIFAR-10 Batch 2: cost:0.03067409060895443 | acc:0.5897999405860901
Epoch 114, CIFAR-10 Batch 3: cost:0.007858972996473312 | acc:0.582599937915802
Epoch 114, CIFAR-10 Batch 4: cost:0.01392148993909359 | acc:0.596799910068512
Epoch 114, CIFAR-10 Batch 5: cost:0.012887119315564632 | acc:0.5789998769760132
Epoch 115, CIFAR-10 Batch 1: cost:0.022179899737238884 | acc:0.5831999778747559
Epoch 115, CIFAR-10 Batch 2: cost:0.015159460715949535 | acc:0.5749999284744263
Epoch 115, CIFAR-10 Batch 3: cost:0.006994521711021662 | acc:0.5885999202728271
Epoch 115, CIFAR-10 Batch 4: cost:0.011577129364013672 | acc:0.5849999189376831
Epoch 115, CIFAR-10 Batch 5: cost:0.0155458003282547 | acc:0.5877999067306519
Epoch 116, CIFAR-10 Batch 1: cost:0.019865399226546288 | acc:0.5837999582290649
Epoch 116, CIFAR-10 Batch 2: cost:0.014399831183254719 | acc:0.5847999453544617
Epoch 116, CIFAR-10 Batch 3: cost:0.004647685214877129 | acc:0.5887998938560486
Epoch 116, CIFAR-10 Batch 4: cost:0.009229596704244614 | acc:0.5931999087333679
Epoch 116, CIFAR-10 Batch 5: cost:0.012297716923058033 | acc:0.5851999521255493
Epoch 117, CIFAR-10 Batch 1: cost:0.006497472524642944 | acc:0.5953999161720276
Epoch 117, CIFAR-10 Batch 2: cost:0.014758076518774033 | acc:0.5915998816490173
Epoch 117, CIFAR-10 Batch 3: cost:0.008136590011417866 | acc:0.5809999108314514
Epoch 117, CIFAR-10 Batch 4: cost:0.010319479741156101 | acc:0.5929998755455017
Epoch 117, CIFAR-10 Batch 5: cost:0.007648499682545662 | acc:0.5879999399185181
Epoch 118, CIFAR-10 Batch 1: cost:0.01315638329833746 | acc:0.5867999792098999
Epoch 118, CIFAR-10 Batch 2: cost:0.01654781401157379 | acc:0.5899999141693115
Epoch 118, CIFAR-10 Batch 3: cost:0.014998148195445538 | acc:0.579599916934967
Epoch 118, CIFAR-10 Batch 4: cost:0.011244969442486763 | acc:0.5927999019622803
Epoch 118, CIFAR-10 Batch 5: cost:0.011416886933147907 | acc:0.5755999088287354
Epoch 119, CIFAR-10 Batch 1: cost:0.008886676281690598 | acc:0.587399959564209
Epoch 119, CIFAR-10 Batch 2: cost:0.016577694565057755 | acc:0.5897998809814453
Epoch 119, CIFAR-10 Batch 3: cost:0.00467457203194499 | acc:0.5811998844146729
Epoch 119, CIFAR-10 Batch 4: cost:0.00803568959236145 | acc:0.5899999737739563
Epoch 119, CIFAR-10 Batch 5: cost:0.012742465361952782 | acc:0.5877999067306519
Epoch 120, CIFAR-10 Batch 1: cost:0.007870534434914589 | acc:0.5923999547958374
Epoch 120, CIFAR-10 Batch 2: cost:0.015476519241929054 | acc:0.586199939250946
Epoch 120, CIFAR-10 Batch 3: cost:0.006674312986433506 | acc:0.5839999318122864
Epoch 120, CIFAR-10 Batch 4: cost:0.008595895953476429 | acc:0.5937998294830322
Epoch 120, CIFAR-10 Batch 5: cost:0.012641130946576595 | acc:0.5809999108314514
Epoch 121, CIFAR-10 Batch 1: cost:0.011564862914383411 | acc:0.5857999324798584
Epoch 121, CIFAR-10 Batch 2: cost:0.013779868371784687 | acc:0.586199939250946
Epoch 121, CIFAR-10 Batch 3: cost:0.00938095711171627 | acc:0.5775998830795288
Epoch 121, CIFAR-10 Batch 4: cost:0.005538881756365299 | acc:0.5823999047279358
Epoch 121, CIFAR-10 Batch 5: cost:0.008131079375743866 | acc:0.5831999182701111
Epoch 122, CIFAR-10 Batch 1: cost:0.005728506483137608 | acc:0.5877999067306519
Epoch 122, CIFAR-10 Batch 2: cost:0.01603839546442032 | acc:0.5793999433517456
Epoch 122, CIFAR-10 Batch 3: cost:0.005834795534610748 | acc:0.5779999494552612
Epoch 122, CIFAR-10 Batch 4: cost:0.006317781284451485 | acc:0.5947998762130737
Epoch 122, CIFAR-10 Batch 5: cost:0.01324520818889141 | acc:0.5767998695373535
Epoch 123, CIFAR-10 Batch 1: cost:0.009603881277143955 | acc:0.5909999012947083
Epoch 123, CIFAR-10 Batch 2: cost:0.008518685586750507 | acc:0.5935999155044556
Epoch 123, CIFAR-10 Batch 3: cost:0.0032544261775910854 | acc:0.5865999460220337
Epoch 123, CIFAR-10 Batch 4: cost:0.006061766296625137 | acc:0.5937999486923218
Epoch 123, CIFAR-10 Batch 5: cost:0.007537060417234898 | acc:0.5879999399185181
Epoch 124, CIFAR-10 Batch 1: cost:0.012626527808606625 | acc:0.5895999073982239
Epoch 124, CIFAR-10 Batch 2: cost:0.013220185413956642 | acc:0.5871999263763428
Epoch 124, CIFAR-10 Batch 3: cost:0.0063875592313706875 | acc:0.5833999514579773
Epoch 124, CIFAR-10 Batch 4: cost:0.010732396505773067 | acc:0.5959999561309814
Epoch 124, CIFAR-10 Batch 5: cost:0.005484766326844692 | acc:0.5907999277114868
Epoch 125, CIFAR-10 Batch 1: cost:0.007992440834641457 | acc:0.5889999866485596
Epoch 125, CIFAR-10 Batch 2: cost:0.009006991982460022 | acc:0.5967999696731567
Epoch 125, CIFAR-10 Batch 3: cost:0.009060259908437729 | acc:0.5851999521255493
Epoch 125, CIFAR-10 Batch 4: cost:0.005790557246655226 | acc:0.5933998823165894
Epoch 125, CIFAR-10 Batch 5: cost:0.005281957797706127 | acc:0.5907999277114868
Epoch 126, CIFAR-10 Batch 1: cost:0.007181637454777956 | acc:0.5987998843193054
Epoch 126, CIFAR-10 Batch 2: cost:0.007691787555813789 | acc:0.5877999067306519
Epoch 126, CIFAR-10 Batch 3: cost:0.0077852169051766396 | acc:0.5905998945236206
Epoch 126, CIFAR-10 Batch 4: cost:0.005947125609964132 | acc:0.602199912071228
Epoch 126, CIFAR-10 Batch 5: cost:0.01647068001329899 | acc:0.5921999216079712
Epoch 127, CIFAR-10 Batch 1: cost:0.006749117746949196 | acc:0.5939999222755432
Epoch 127, CIFAR-10 Batch 2: cost:0.00796002522110939 | acc:0.5953999757766724
Epoch 127, CIFAR-10 Batch 3: cost:0.006053030490875244 | acc:0.5857999324798584
Epoch 127, CIFAR-10 Batch 4: cost:0.007347666192799807 | acc:0.5945998430252075
Epoch 127, CIFAR-10 Batch 5: cost:0.008099268190562725 | acc:0.5893998742103577
Epoch 128, CIFAR-10 Batch 1: cost:0.00879599153995514 | acc:0.5979999303817749
Epoch 128, CIFAR-10 Batch 2: cost:0.00686652073636651 | acc:0.5879998803138733
Epoch 128, CIFAR-10 Batch 3: cost:0.003997849766165018 | acc:0.5857998728752136
Epoch 128, CIFAR-10 Batch 4: cost:0.006161765661090612 | acc:0.5897999405860901
Epoch 128, CIFAR-10 Batch 5: cost:0.009200051426887512 | acc:0.590799868106842
Epoch 129, CIFAR-10 Batch 1: cost:0.006124334409832954 | acc:0.5945999026298523
Epoch 129, CIFAR-10 Batch 2: cost:0.008854517713189125 | acc:0.5947998762130737
Epoch 129, CIFAR-10 Batch 3: cost:0.0030971725936979055 | acc:0.578999936580658
Epoch 129, CIFAR-10 Batch 4: cost:0.007920771837234497 | acc:0.5895999073982239
Epoch 129, CIFAR-10 Batch 5: cost:0.006634268909692764 | acc:0.5781999826431274
Epoch 130, CIFAR-10 Batch 1: cost:0.010587111115455627 | acc:0.5933998823165894
Epoch 130, CIFAR-10 Batch 2: cost:0.0049116965383291245 | acc:0.5971999168395996
Epoch 130, CIFAR-10 Batch 3: cost:0.003769342787563801 | acc:0.5875998735427856
Epoch 130, CIFAR-10 Batch 4: cost:0.005394320003688335 | acc:0.593799889087677
Epoch 130, CIFAR-10 Batch 5: cost:0.007574863266199827 | acc:0.5887998938560486
Epoch 131, CIFAR-10 Batch 1: cost:0.009293485432863235 | acc:0.5997999310493469
Epoch 131, CIFAR-10 Batch 2: cost:0.013154427520930767 | acc:0.5857999324798584
Epoch 131, CIFAR-10 Batch 3: cost:0.004730717279016972 | acc:0.584399938583374
Epoch 131, CIFAR-10 Batch 4: cost:0.004799101501703262 | acc:0.601599931716919
Epoch 131, CIFAR-10 Batch 5: cost:0.011168789118528366 | acc:0.5845998525619507
Epoch 132, CIFAR-10 Batch 1: cost:0.004525264725089073 | acc:0.5963999629020691
Epoch 132, CIFAR-10 Batch 2: cost:0.008067378774285316 | acc:0.5909999012947083
Epoch 132, CIFAR-10 Batch 3: cost:0.00512742530554533 | acc:0.5859999060630798
Epoch 132, CIFAR-10 Batch 4: cost:0.0070273177698254585 | acc:0.5871999263763428
Epoch 132, CIFAR-10 Batch 5: cost:0.008951940573751926 | acc:0.5815998911857605
Epoch 133, CIFAR-10 Batch 1: cost:0.005389711353927851 | acc:0.5907999277114868
Epoch 133, CIFAR-10 Batch 2: cost:0.008138952776789665 | acc:0.5827999114990234
Epoch 133, CIFAR-10 Batch 3: cost:0.009262312203645706 | acc:0.5705999135971069
Epoch 133, CIFAR-10 Batch 4: cost:0.0023240724112838507 | acc:0.597399890422821
Epoch 133, CIFAR-10 Batch 5: cost:0.007286794018000364 | acc:0.586199939250946
Epoch 134, CIFAR-10 Batch 1: cost:0.00708790635690093 | acc:0.5923998951911926
Epoch 134, CIFAR-10 Batch 2: cost:0.012074984610080719 | acc:0.5893998742103577
Epoch 134, CIFAR-10 Batch 3: cost:0.006647537928074598 | acc:0.5771999359130859
Epoch 134, CIFAR-10 Batch 4: cost:0.005345218814909458 | acc:0.5915999412536621
Epoch 134, CIFAR-10 Batch 5: cost:0.007050841581076384 | acc:0.5839999318122864
Epoch 135, CIFAR-10 Batch 1: cost:0.008274470455944538 | acc:0.5929999351501465
Epoch 135, CIFAR-10 Batch 2: cost:0.006931887939572334 | acc:0.5879999399185181
Epoch 135, CIFAR-10 Batch 3: cost:0.018178217113018036 | acc:0.5725998878479004
Epoch 135, CIFAR-10 Batch 4: cost:0.006318188738077879 | acc:0.5917999148368835
Epoch 135, CIFAR-10 Batch 5: cost:0.003155752783641219 | acc:0.5855998992919922
Epoch 136, CIFAR-10 Batch 1: cost:0.0035731522366404533 | acc:0.5963999032974243
Epoch 136, CIFAR-10 Batch 2: cost:0.004546072334051132 | acc:0.5891999006271362
Epoch 136, CIFAR-10 Batch 3: cost:0.004109054803848267 | acc:0.5857999324798584
Epoch 136, CIFAR-10 Batch 4: cost:0.003694054903462529 | acc:0.6003999710083008
Epoch 136, CIFAR-10 Batch 5: cost:0.0034770313650369644 | acc:0.5897999405860901
Epoch 137, CIFAR-10 Batch 1: cost:0.01634153723716736 | acc:0.5795998573303223
Epoch 137, CIFAR-10 Batch 2: cost:0.0059700533747673035 | acc:0.5939999222755432
Epoch 137, CIFAR-10 Batch 3: cost:0.006140547804534435 | acc:0.5811998844146729
Epoch 137, CIFAR-10 Batch 4: cost:0.002246988471597433 | acc:0.5961999297142029
Epoch 137, CIFAR-10 Batch 5: cost:0.005444329231977463 | acc:0.5847999453544617
Epoch 138, CIFAR-10 Batch 1: cost:0.0024707885459065437 | acc:0.5903998613357544
Epoch 138, CIFAR-10 Batch 2: cost:0.006255050655454397 | acc:0.5943998694419861
Epoch 138, CIFAR-10 Batch 3: cost:0.003976061008870602 | acc:0.5753998756408691
Epoch 138, CIFAR-10 Batch 4: cost:0.005187151022255421 | acc:0.5917999148368835
Epoch 138, CIFAR-10 Batch 5: cost:0.014645510353147984 | acc:0.5819998979568481
Epoch 139, CIFAR-10 Batch 1: cost:0.003808452980592847 | acc:0.5927999019622803
Epoch 139, CIFAR-10 Batch 2: cost:0.006151593290269375 | acc:0.5941998958587646
Epoch 139, CIFAR-10 Batch 3: cost:0.0056825364008545876 | acc:0.5763999223709106
Epoch 139, CIFAR-10 Batch 4: cost:0.0030662978533655405 | acc:0.6047999262809753
Epoch 139, CIFAR-10 Batch 5: cost:0.005012172739952803 | acc:0.5871999263763428
Epoch 140, CIFAR-10 Batch 1: cost:0.004721322096884251 | acc:0.5863999128341675
Epoch 140, CIFAR-10 Batch 2: cost:0.00493251346051693 | acc:0.5905998945236206
Epoch 140, CIFAR-10 Batch 3: cost:0.0022081639617681503 | acc:0.58079993724823
Epoch 140, CIFAR-10 Batch 4: cost:0.005404924042522907 | acc:0.6023998856544495
Epoch 140, CIFAR-10 Batch 5: cost:0.005341708660125732 | acc:0.5795998573303223
Epoch 141, CIFAR-10 Batch 1: cost:0.003992454148828983 | acc:0.5931999683380127
Epoch 141, CIFAR-10 Batch 2: cost:0.00512657267972827 | acc:0.5931999683380127
Epoch 141, CIFAR-10 Batch 3: cost:0.0026477202773094177 | acc:0.5803999304771423
Epoch 141, CIFAR-10 Batch 4: cost:0.0030424753203988075 | acc:0.6037998795509338
Epoch 141, CIFAR-10 Batch 5: cost:0.004646971821784973 | acc:0.585599958896637
Epoch 142, CIFAR-10 Batch 1: cost:0.003961903043091297 | acc:0.5887998938560486
Epoch 142, CIFAR-10 Batch 2: cost:0.004205123521387577 | acc:0.5925998687744141
Epoch 142, CIFAR-10 Batch 3: cost:0.0036641398910433054 | acc:0.5785999298095703
Epoch 142, CIFAR-10 Batch 4: cost:0.010907119140028954 | acc:0.5957999229431152
Epoch 142, CIFAR-10 Batch 5: cost:0.0037916386500000954 | acc:0.5907999277114868
Epoch 143, CIFAR-10 Batch 1: cost:0.0035053170286118984 | acc:0.5995999574661255
Epoch 143, CIFAR-10 Batch 2: cost:0.008563357405364513 | acc:0.5959999561309814
Epoch 143, CIFAR-10 Batch 3: cost:0.0022883140482008457 | acc:0.5861998796463013
Epoch 143, CIFAR-10 Batch 4: cost:0.004631413146853447 | acc:0.6027999520301819
Epoch 143, CIFAR-10 Batch 5: cost:0.0031990064308047295 | acc:0.5821999311447144
Epoch 144, CIFAR-10 Batch 1: cost:0.005394944921135902 | acc:0.5929999351501465
Epoch 144, CIFAR-10 Batch 2: cost:0.007945952005684376 | acc:0.5939999222755432
Epoch 144, CIFAR-10 Batch 3: cost:0.0019844789057970047 | acc:0.5831999778747559
Epoch 144, CIFAR-10 Batch 4: cost:0.004023346118628979 | acc:0.5927999019622803
Epoch 144, CIFAR-10 Batch 5: cost:0.0033882749266922474 | acc:0.5907999277114868
Epoch 145, CIFAR-10 Batch 1: cost:0.0028879004530608654 | acc:0.5945999026298523
Epoch 145, CIFAR-10 Batch 2: cost:0.006902216002345085 | acc:0.5879999399185181
Epoch 145, CIFAR-10 Batch 3: cost:0.0034967102110385895 | acc:0.574199914932251
Epoch 145, CIFAR-10 Batch 4: cost:0.006431637331843376 | acc:0.5917999148368835
Epoch 145, CIFAR-10 Batch 5: cost:0.006394116207957268 | acc:0.5797999501228333
Epoch 146, CIFAR-10 Batch 1: cost:0.006280791945755482 | acc:0.5863999128341675
Epoch 146, CIFAR-10 Batch 2: cost:0.005090450868010521 | acc:0.5939999222755432
Epoch 146, CIFAR-10 Batch 3: cost:0.007193433120846748 | acc:0.575999915599823
Epoch 146, CIFAR-10 Batch 4: cost:0.0027912219520658255 | acc:0.5953999161720276
Epoch 146, CIFAR-10 Batch 5: cost:0.002872440731152892 | acc:0.6013999581336975
Epoch 147, CIFAR-10 Batch 1: cost:0.0057508619502186775 | acc:0.5911998748779297
Epoch 147, CIFAR-10 Batch 2: cost:0.014230279251933098 | acc:0.5935999155044556
Epoch 147, CIFAR-10 Batch 3: cost:0.0025833328254520893 | acc:0.5853999257087708
Epoch 147, CIFAR-10 Batch 4: cost:0.006850298028439283 | acc:0.5917999148368835
Epoch 147, CIFAR-10 Batch 5: cost:0.005020519718527794 | acc:0.587399959564209
Epoch 148, CIFAR-10 Batch 1: cost:0.0062032416462898254 | acc:0.5949999094009399
Epoch 148, CIFAR-10 Batch 2: cost:0.011918088421225548 | acc:0.5913999080657959
Epoch 148, CIFAR-10 Batch 3: cost:0.008562689647078514 | acc:0.5727999210357666
Epoch 148, CIFAR-10 Batch 4: cost:0.0034342841245234013 | acc:0.5963999629020691
Epoch 148, CIFAR-10 Batch 5: cost:0.004553004167973995 | acc:0.5827999114990234
Epoch 149, CIFAR-10 Batch 1: cost:0.0014771790010854602 | acc:0.5905999541282654
Epoch 149, CIFAR-10 Batch 2: cost:0.0034653181210160255 | acc:0.5945999622344971
Epoch 149, CIFAR-10 Batch 3: cost:0.0044908481650054455 | acc:0.5733999609947205
Epoch 149, CIFAR-10 Batch 4: cost:0.006305835675448179 | acc:0.5935999155044556
Epoch 149, CIFAR-10 Batch 5: cost:0.0069464268162846565 | acc:0.5895999073982239
Epoch 150, CIFAR-10 Batch 1: cost:0.002163697499781847 | acc:0.5891999006271362
Epoch 150, CIFAR-10 Batch 2: cost:0.0036534774117171764 | acc:0.5929999351501465
Epoch 150, CIFAR-10 Batch 3: cost:0.003486006986349821 | acc:0.5881999731063843
Epoch 150, CIFAR-10 Batch 4: cost:0.004222624469548464 | acc:0.5913999080657959
Epoch 150, CIFAR-10 Batch 5: cost:0.0034273110795766115 | acc:0.587399959564209
Epoch 151, CIFAR-10 Batch 1: cost:0.00578007148578763 | acc:0.5915998816490173
Epoch 151, CIFAR-10 Batch 2: cost:0.006716208532452583 | acc:0.5929998755455017
Epoch 151, CIFAR-10 Batch 3: cost:0.003181985579431057 | acc:0.5847999453544617
Epoch 151, CIFAR-10 Batch 4: cost:0.003510464681312442 | acc:0.5869999527931213
Epoch 151, CIFAR-10 Batch 5: cost:0.004195389337837696 | acc:0.5883998870849609
Epoch 152, CIFAR-10 Batch 1: cost:0.004544366151094437 | acc:0.5929999351501465
Epoch 152, CIFAR-10 Batch 2: cost:0.004143828526139259 | acc:0.5891999006271362
Epoch 152, CIFAR-10 Batch 3: cost:0.003528652945533395 | acc:0.5801998972892761
Epoch 152, CIFAR-10 Batch 4: cost:0.005667449906468391 | acc:0.598599910736084
Epoch 152, CIFAR-10 Batch 5: cost:0.003048188053071499 | acc:0.5841999053955078
Epoch 153, CIFAR-10 Batch 1: cost:0.00652969628572464 | acc:0.5889999270439148
Epoch 153, CIFAR-10 Batch 2: cost:0.005262355785816908 | acc:0.5901999473571777
Epoch 153, CIFAR-10 Batch 3: cost:0.0017017337959259748 | acc:0.5871999263763428
Epoch 153, CIFAR-10 Batch 4: cost:0.0033409795723855495 | acc:0.5951999425888062
Epoch 153, CIFAR-10 Batch 5: cost:0.005290153436362743 | acc:0.5917999148368835
Epoch 154, CIFAR-10 Batch 1: cost:0.007378093432635069 | acc:0.585599958896637
Epoch 154, CIFAR-10 Batch 2: cost:0.0017605568282306194 | acc:0.5827999114990234
Epoch 154, CIFAR-10 Batch 3: cost:0.0015793700003996491 | acc:0.5875999331474304
Epoch 154, CIFAR-10 Batch 4: cost:0.005978846922516823 | acc:0.597599983215332
Epoch 154, CIFAR-10 Batch 5: cost:0.00820129457861185 | acc:0.584399938583374
Epoch 155, CIFAR-10 Batch 1: cost:0.0021983610931783915 | acc:0.5897999405860901
Epoch 155, CIFAR-10 Batch 2: cost:0.0027173501439392567 | acc:0.5909999012947083
Epoch 155, CIFAR-10 Batch 3: cost:0.002001794520765543 | acc:0.578999936580658
Epoch 155, CIFAR-10 Batch 4: cost:0.005986413918435574 | acc:0.5927999019622803
Epoch 155, CIFAR-10 Batch 5: cost:0.00532032735645771 | acc:0.5865999460220337
Epoch 156, CIFAR-10 Batch 1: cost:0.0035457818303257227 | acc:0.5865999460220337
Epoch 156, CIFAR-10 Batch 2: cost:0.004998227581381798 | acc:0.5937999486923218
Epoch 156, CIFAR-10 Batch 3: cost:0.006086322478950024 | acc:0.5803998708724976
Epoch 156, CIFAR-10 Batch 4: cost:0.0030219387263059616 | acc:0.5979999303817749
Epoch 156, CIFAR-10 Batch 5: cost:0.006522551644593477 | acc:0.5865998864173889
Epoch 157, CIFAR-10 Batch 1: cost:0.0019610761664807796 | acc:0.5953999161720276
Epoch 157, CIFAR-10 Batch 2: cost:0.0030452399514615536 | acc:0.5889999270439148
Epoch 157, CIFAR-10 Batch 3: cost:0.0034750953782349825 | acc:0.5767999887466431
Epoch 157, CIFAR-10 Batch 4: cost:0.0056857517920434475 | acc:0.5893999338150024
Epoch 157, CIFAR-10 Batch 5: cost:0.004057689569890499 | acc:0.5853999853134155
Epoch 158, CIFAR-10 Batch 1: cost:0.0031953458674252033 | acc:0.5905998945236206
Epoch 158, CIFAR-10 Batch 2: cost:0.002541243564337492 | acc:0.5913999080657959
Epoch 158, CIFAR-10 Batch 3: cost:0.0058631375432014465 | acc:0.5769999027252197
Epoch 158, CIFAR-10 Batch 4: cost:0.0073189083486795425 | acc:0.5887998938560486
Epoch 158, CIFAR-10 Batch 5: cost:0.004513464868068695 | acc:0.5799999237060547
Epoch 159, CIFAR-10 Batch 1: cost:0.0032955624628812075 | acc:0.5947998762130737
Epoch 159, CIFAR-10 Batch 2: cost:0.0030983511824160814 | acc:0.5921999216079712
Epoch 159, CIFAR-10 Batch 3: cost:0.003210693597793579 | acc:0.5771998763084412
Epoch 159, CIFAR-10 Batch 4: cost:0.0025016069412231445 | acc:0.584399938583374
Epoch 159, CIFAR-10 Batch 5: cost:0.0019953520968556404 | acc:0.5883999466896057
Epoch 160, CIFAR-10 Batch 1: cost:0.008361046202480793 | acc:0.5881999135017395
Epoch 160, CIFAR-10 Batch 2: cost:0.0028032585978507996 | acc:0.5909999012947083
Epoch 160, CIFAR-10 Batch 3: cost:0.004701044876128435 | acc:0.5777999758720398
Epoch 160, CIFAR-10 Batch 4: cost:0.0017637326382100582 | acc:0.5871999263763428
Epoch 160, CIFAR-10 Batch 5: cost:0.0010940789943560958 | acc:0.5929999351501465
Epoch 161, CIFAR-10 Batch 1: cost:0.0048188213258981705 | acc:0.5875998735427856
Epoch 161, CIFAR-10 Batch 2: cost:0.0025552520528435707 | acc:0.5909999012947083
Epoch 161, CIFAR-10 Batch 3: cost:0.0021278916392475367 | acc:0.5791999101638794
Epoch 161, CIFAR-10 Batch 4: cost:0.004601106978952885 | acc:0.5939999222755432
Epoch 161, CIFAR-10 Batch 5: cost:0.002020367421209812 | acc:0.5949999094009399
Epoch 162, CIFAR-10 Batch 1: cost:0.005893146153539419 | acc:0.5995998978614807
Epoch 162, CIFAR-10 Batch 2: cost:0.004695297218859196 | acc:0.5913999080657959
Epoch 162, CIFAR-10 Batch 3: cost:0.002250648569315672 | acc:0.5819998979568481
Epoch 162, CIFAR-10 Batch 4: cost:0.003446030430495739 | acc:0.5899999141693115
Epoch 162, CIFAR-10 Batch 5: cost:0.006063036620616913 | acc:0.596799910068512
Epoch 163, CIFAR-10 Batch 1: cost:0.0026331471744924784 | acc:0.591999888420105
Epoch 163, CIFAR-10 Batch 2: cost:0.0050092278979718685 | acc:0.5827999114990234
Epoch 163, CIFAR-10 Batch 3: cost:0.0017691574757918715 | acc:0.5805999040603638
Epoch 163, CIFAR-10 Batch 4: cost:0.0019607774447649717 | acc:0.5903998613357544
Epoch 163, CIFAR-10 Batch 5: cost:0.002484724624082446 | acc:0.5875998735427856
Epoch 164, CIFAR-10 Batch 1: cost:0.001095346175134182 | acc:0.5933999419212341
Epoch 164, CIFAR-10 Batch 2: cost:0.003234606934711337 | acc:0.5877999067306519
Epoch 164, CIFAR-10 Batch 3: cost:0.0042334310710430145 | acc:0.5821999311447144
Epoch 164, CIFAR-10 Batch 4: cost:0.004664713516831398 | acc:0.5947998762130737
Epoch 164, CIFAR-10 Batch 5: cost:0.0039016588125377893 | acc:0.5867999196052551
Epoch 165, CIFAR-10 Batch 1: cost:0.004603811074048281 | acc:0.5959999561309814
Epoch 165, CIFAR-10 Batch 2: cost:0.0024916843976825476 | acc:0.5857998728752136
Epoch 165, CIFAR-10 Batch 3: cost:0.0022717048414051533 | acc:0.5823999047279358
Epoch 165, CIFAR-10 Batch 4: cost:0.002693507354706526 | acc:0.5929999351501465
Epoch 165, CIFAR-10 Batch 5: cost:0.0054621221497654915 | acc:0.5899998545646667
Epoch 166, CIFAR-10 Batch 1: cost:0.0014776393072679639 | acc:0.5979999303817749
Epoch 166, CIFAR-10 Batch 2: cost:0.002303285989910364 | acc:0.5881999731063843
Epoch 166, CIFAR-10 Batch 3: cost:0.0013116791378706694 | acc:0.5817999839782715
Epoch 166, CIFAR-10 Batch 4: cost:0.0025458848103880882 | acc:0.5973998308181763
Epoch 166, CIFAR-10 Batch 5: cost:0.0021585316862910986 | acc:0.5915999412536621
Epoch 167, CIFAR-10 Batch 1: cost:0.0012781365076079965 | acc:0.5945999026298523
Epoch 167, CIFAR-10 Batch 2: cost:0.004220201168209314 | acc:0.5881999135017395
Epoch 167, CIFAR-10 Batch 3: cost:0.0020331901032477617 | acc:0.5899999141693115
Epoch 167, CIFAR-10 Batch 4: cost:0.005124465562403202 | acc:0.5879999399185181
Epoch 167, CIFAR-10 Batch 5: cost:0.001508550369180739 | acc:0.5956000089645386
Epoch 168, CIFAR-10 Batch 1: cost:0.003659695852547884 | acc:0.5957998633384705
Epoch 168, CIFAR-10 Batch 2: cost:0.0016722658183425665 | acc:0.5883999466896057
Epoch 168, CIFAR-10 Batch 3: cost:0.0026774185243993998 | acc:0.5787999033927917
Epoch 168, CIFAR-10 Batch 4: cost:0.003082968294620514 | acc:0.5793999433517456
Epoch 168, CIFAR-10 Batch 5: cost:0.0016995224868878722 | acc:0.5869998931884766
Epoch 169, CIFAR-10 Batch 1: cost:0.005290893372148275 | acc:0.597000002861023
Epoch 169, CIFAR-10 Batch 2: cost:0.004347043111920357 | acc:0.5797998309135437
Epoch 169, CIFAR-10 Batch 3: cost:0.0011173388920724392 | acc:0.5831999182701111
Epoch 169, CIFAR-10 Batch 4: cost:0.0024250298738479614 | acc:0.5895999073982239
Epoch 169, CIFAR-10 Batch 5: cost:0.002587332855910063 | acc:0.5869999527931213
Epoch 170, CIFAR-10 Batch 1: cost:0.002960028126835823 | acc:0.5951999425888062
Epoch 170, CIFAR-10 Batch 2: cost:0.0036679357290267944 | acc:0.582599937915802
Epoch 170, CIFAR-10 Batch 3: cost:0.00186528405174613 | acc:0.5839999318122864
Epoch 170, CIFAR-10 Batch 4: cost:0.002819312736392021 | acc:0.5847999453544617
Epoch 170, CIFAR-10 Batch 5: cost:0.0013859050814062357 | acc:0.5905999541282654
Epoch 171, CIFAR-10 Batch 1: cost:0.003849351080134511 | acc:0.5893999338150024
Epoch 171, CIFAR-10 Batch 2: cost:0.005004320293664932 | acc:0.5857998728752136
Epoch 171, CIFAR-10 Batch 3: cost:0.002010798081755638 | acc:0.5849999189376831
Epoch 171, CIFAR-10 Batch 4: cost:0.0027558165602385998 | acc:0.5839999318122864
Epoch 171, CIFAR-10 Batch 5: cost:0.001281309756450355 | acc:0.5911998748779297
Epoch 172, CIFAR-10 Batch 1: cost:0.003969934768974781 | acc:0.5879999399185181
Epoch 172, CIFAR-10 Batch 2: cost:0.0035437738988548517 | acc:0.5823999643325806
Epoch 172, CIFAR-10 Batch 3: cost:0.003051359672099352 | acc:0.5815998911857605
Epoch 172, CIFAR-10 Batch 4: cost:0.002574923448264599 | acc:0.5995999574661255
Epoch 172, CIFAR-10 Batch 5: cost:0.0009188731200993061 | acc:0.5979999303817749
Epoch 173, CIFAR-10 Batch 1: cost:0.0017441078089177608 | acc:0.5983998775482178
Epoch 173, CIFAR-10 Batch 2: cost:0.0010580007219687104 | acc:0.5905998945236206
Epoch 173, CIFAR-10 Batch 3: cost:0.004111346788704395 | acc:0.5877999663352966
Epoch 173, CIFAR-10 Batch 4: cost:0.001289262087084353 | acc:0.5881998538970947
Epoch 173, CIFAR-10 Batch 5: cost:0.0012922302121296525 | acc:0.5951999425888062
Epoch 174, CIFAR-10 Batch 1: cost:0.00236637145280838 | acc:0.5871999263763428
Epoch 174, CIFAR-10 Batch 2: cost:0.0025332486256957054 | acc:0.5875998735427856
Epoch 174, CIFAR-10 Batch 3: cost:0.0033152196556329727 | acc:0.5755999088287354
Epoch 174, CIFAR-10 Batch 4: cost:0.0026295813731849194 | acc:0.5905999541282654
Epoch 174, CIFAR-10 Batch 5: cost:0.0013940732460469007 | acc:0.5855998992919922
Epoch 175, CIFAR-10 Batch 1: cost:0.0019647344015538692 | acc:0.5969998836517334
Epoch 175, CIFAR-10 Batch 2: cost:0.002892123069614172 | acc:0.5881998538970947
Epoch 175, CIFAR-10 Batch 3: cost:0.003665775991976261 | acc:0.5841999053955078
Epoch 175, CIFAR-10 Batch 4: cost:0.0027143354527652264 | acc:0.5873998403549194
Epoch 175, CIFAR-10 Batch 5: cost:0.0015040256548672915 | acc:0.5919999480247498
Epoch 176, CIFAR-10 Batch 1: cost:0.001209259731695056 | acc:0.5953999161720276
Epoch 176, CIFAR-10 Batch 2: cost:0.0023053428158164024 | acc:0.58899986743927
Epoch 176, CIFAR-10 Batch 3: cost:0.00782364048063755 | acc:0.5809998512268066
Epoch 176, CIFAR-10 Batch 4: cost:0.0024470302741974592 | acc:0.5871999263763428
Epoch 176, CIFAR-10 Batch 5: cost:0.0006596133462153375 | acc:0.5937999486923218
Epoch 177, CIFAR-10 Batch 1: cost:0.0020671451929956675 | acc:0.5883999466896057
Epoch 177, CIFAR-10 Batch 2: cost:0.0028007635846734047 | acc:0.577799916267395
Epoch 177, CIFAR-10 Batch 3: cost:0.0029198278207331896 | acc:0.5837998986244202
Epoch 177, CIFAR-10 Batch 4: cost:0.0021473951637744904 | acc:0.5919999480247498
Epoch 177, CIFAR-10 Batch 5: cost:0.0026729386299848557 | acc:0.5917998552322388
Epoch 178, CIFAR-10 Batch 1: cost:0.002374910283833742 | acc:0.5947999358177185
Epoch 178, CIFAR-10 Batch 2: cost:0.002365794498473406 | acc:0.5829998850822449
Epoch 178, CIFAR-10 Batch 3: cost:0.0025616325438022614 | acc:0.577799916267395
Epoch 178, CIFAR-10 Batch 4: cost:0.0010168832959607244 | acc:0.5845999717712402
Epoch 178, CIFAR-10 Batch 5: cost:0.0012665912508964539 | acc:0.5883999466896057
Epoch 179, CIFAR-10 Batch 1: cost:0.002044407883659005 | acc:0.5925998687744141
Epoch 179, CIFAR-10 Batch 2: cost:0.0008532085921615362 | acc:0.5883999466896057
Epoch 179, CIFAR-10 Batch 3: cost:0.002931073075160384 | acc:0.5849999189376831
Epoch 179, CIFAR-10 Batch 4: cost:0.001877293805591762 | acc:0.5965999364852905
Epoch 179, CIFAR-10 Batch 5: cost:0.0014083775458857417 | acc:0.5829999446868896
Epoch 180, CIFAR-10 Batch 1: cost:0.0026591899804770947 | acc:0.5923998951911926
Epoch 180, CIFAR-10 Batch 2: cost:0.004308641888201237 | acc:0.587399959564209
Epoch 180, CIFAR-10 Batch 3: cost:0.0016423638444393873 | acc:0.5831999182701111
Epoch 180, CIFAR-10 Batch 4: cost:0.0014873958425596356 | acc:0.5939999222755432
Epoch 180, CIFAR-10 Batch 5: cost:0.0028726349119096994 | acc:0.5879999399185181
Epoch 181, CIFAR-10 Batch 1: cost:0.0031776237301528454 | acc:0.5905999541282654
Epoch 181, CIFAR-10 Batch 2: cost:0.002730556530877948 | acc:0.5915999412536621
Epoch 181, CIFAR-10 Batch 3: cost:0.0032906080596148968 | acc:0.587399959564209
Epoch 181, CIFAR-10 Batch 4: cost:0.0008295221487060189 | acc:0.5961998701095581
Epoch 181, CIFAR-10 Batch 5: cost:0.0015765596181154251 | acc:0.5977998971939087
Epoch 182, CIFAR-10 Batch 1: cost:0.0014299846952781081 | acc:0.595599889755249
Epoch 182, CIFAR-10 Batch 2: cost:0.001617702771909535 | acc:0.5835999250411987
Epoch 182, CIFAR-10 Batch 3: cost:0.0008789539569988847 | acc:0.5833999514579773
Epoch 182, CIFAR-10 Batch 4: cost:0.0020180060528218746 | acc:0.5951998829841614
Epoch 182, CIFAR-10 Batch 5: cost:0.0035984781570732594 | acc:0.5867999196052551
Epoch 183, CIFAR-10 Batch 1: cost:0.001713088247925043 | acc:0.5811998844146729
Epoch 183, CIFAR-10 Batch 2: cost:0.00250391592271626 | acc:0.5849999189376831
Epoch 183, CIFAR-10 Batch 3: cost:0.0023977153468877077 | acc:0.5819999575614929
Epoch 183, CIFAR-10 Batch 4: cost:0.002003519330173731 | acc:0.5885998606681824
Epoch 183, CIFAR-10 Batch 5: cost:0.0008944513974711299 | acc:0.5879999399185181
Epoch 184, CIFAR-10 Batch 1: cost:0.0015011532232165337 | acc:0.5965999364852905
Epoch 184, CIFAR-10 Batch 2: cost:0.00139282934833318 | acc:0.5865999460220337
Epoch 184, CIFAR-10 Batch 3: cost:0.0016276331152766943 | acc:0.5915999412536621
Epoch 184, CIFAR-10 Batch 4: cost:0.002687581581994891 | acc:0.5935999155044556
Epoch 184, CIFAR-10 Batch 5: cost:0.0019958766642957926 | acc:0.5929999351501465
Epoch 185, CIFAR-10 Batch 1: cost:0.0015072855167090893 | acc:0.5911999344825745
Epoch 185, CIFAR-10 Batch 2: cost:0.005085612181574106 | acc:0.5921999216079712
Epoch 185, CIFAR-10 Batch 3: cost:0.003091041464358568 | acc:0.5779999494552612
Epoch 185, CIFAR-10 Batch 4: cost:0.0032528871670365334 | acc:0.590399980545044
Epoch 185, CIFAR-10 Batch 5: cost:0.0034262428525835276 | acc:0.5917999148368835
Epoch 186, CIFAR-10 Batch 1: cost:0.0023408792912960052 | acc:0.6049998998641968
cost:0.0010993832256644964 | acc:0.5959999561309814
Epoch 191, CIFAR-10 Batch 1: cost:0.0009519937448203564 | acc:0.586199939250946
Epoch 191, CIFAR-10 Batch 2: cost:0.005502348765730858 | acc:0.5921999216079712
Epoch 191, CIFAR-10 Batch 3: cost:0.00044750882079824805 | acc:0.5881998538970947
Epoch 191, CIFAR-10 Batch 4: cost:0.004760732874274254 | acc:0.5831999182701111
Epoch 191, CIFAR-10 Batch 5: cost:0.0011914231581613421 | acc:0.5837998986244202
Epoch 192, CIFAR-10 Batch 1: cost:0.0013515133177861571 | acc:0.5949999690055847
Epoch 192, CIFAR-10 Batch 2: cost:0.0020732118282467127 | acc:0.5987999439239502
Epoch 192, CIFAR-10 Batch 3: cost:0.0021655571181327105 | acc:0.5877999067306519
Epoch 192, CIFAR-10 Batch 4: cost:0.0022676691878587008 | acc:0.5975999236106873
Epoch 192, CIFAR-10 Batch 5: cost:0.0014569045742973685 | acc:0.5971999168395996
Epoch 193, CIFAR-10 Batch 1: cost:0.0006772954948246479 | acc:0.597000002861023
Epoch 193, CIFAR-10 Batch 2: cost:0.0030321618542075157 | acc:0.5957999229431152
Epoch 193, CIFAR-10 Batch 3: cost:0.0006745931459590793 | acc:0.590799868106842
Epoch 193, CIFAR-10 Batch 4: cost:0.001945807016454637 | acc:0.5895999670028687
Epoch 193, CIFAR-10 Batch 5: cost:0.0023829389829188585 | acc:0.5933998823165894
Epoch 194, CIFAR-10 Batch 1: cost:0.0022376845590770245 | acc:0.5975998640060425
Epoch 194, CIFAR-10 Batch 2: cost:0.0032027028501033783 | acc:0.5949999094009399
Epoch 194, CIFAR-10 Batch 3: cost:0.0012894276296719909 | acc:0.5917999148368835
Epoch 194, CIFAR-10 Batch 4: cost:0.0010931524448096752 | acc:0.5921999216079712
Epoch 194, CIFAR-10 Batch 5: cost:0.0008211819804273546 | acc:0.5959999561309814
Epoch 195, CIFAR-10 Batch 1: cost:0.0028309780173003674 | acc:0.5949999094009399
Epoch 195, CIFAR-10 Batch 2: cost:0.004944032058119774 | acc:0.592799961566925
Epoch 195, CIFAR-10 Batch 3: cost:0.0009008756605908275 | acc:0.5899999141693115
Epoch 195, CIFAR-10 Batch 4: cost:0.0016938120825216174 | acc:0.5835999250411987
Epoch 195, CIFAR-10 Batch 5: cost:0.0007995467749424279 | acc:0.586199939250946
Epoch 196, CIFAR-10 Batch 1: cost:0.001255123526789248 | acc:0.5959999561309814
Epoch 196, CIFAR-10 Batch 2: cost:0.004133785143494606 | acc:0.5911998748779297
Epoch 196, CIFAR-10 Batch 3: cost:0.001087382435798645 | acc:0.5885999202728271
Epoch 196, CIFAR-10 Batch 4: cost:0.0008657622965984046 | acc:0.5899999141693115
Epoch 196, CIFAR-10 Batch 5: cost:0.0011997512774541974 | acc:0.5961999297142029
Epoch 197, CIFAR-10 Batch 1: cost:0.0023749670945107937 | acc:0.5953999161720276
Epoch 197, CIFAR-10 Batch 2: cost:0.00750460010021925 | acc:0.5901999473571777
Epoch 197, CIFAR-10 Batch 3: cost:0.0004089319263584912 | acc:0.5917999744415283
Epoch 197, CIFAR-10 Batch 4: cost:0.001985106850042939 | acc:0.5895999073982239
Epoch 197, CIFAR-10 Batch 5: cost:0.0011373681481927633 | acc:0.5943998694419861
Epoch 198, CIFAR-10 Batch 1: cost:0.0013803449692204595 | acc:0.5921999216079712
Epoch 198, CIFAR-10 Batch 2: cost:0.003028708044439554 | acc:0.5961998701095581
Epoch 198, CIFAR-10 Batch 3: cost:0.0003604758530855179 | acc:0.5853999257087708
Epoch 198, CIFAR-10 Batch 4: cost:0.0017897863872349262 | acc:0.5801999568939209
Epoch 198, CIFAR-10 Batch 5: cost:0.001396165695041418 | acc:0.5933999419212341
Epoch 199, CIFAR-10 Batch 1: cost:0.0026484536938369274 | acc:0.5983998775482178
Epoch 199, CIFAR-10 Batch 2: cost:0.002471786690875888 | acc:0.5953999161720276
Epoch 199, CIFAR-10 Batch 3: cost:0.00033311411971226335 | acc:0.5935999155044556
Epoch 199, CIFAR-10 Batch 4: cost:0.001422425964847207 | acc:0.5951999425888062
Epoch 199, CIFAR-10 Batch 5: cost:0.0010621288092806935 | acc:0.5915999412536621
Epoch 200, CIFAR-10 Batch 1: cost:0.001419935841113329 | acc:0.5939999222755432
Epoch 200, CIFAR-10 Batch 2: cost:0.003096450585871935 | acc:0.5945999026298523
Epoch 200, CIFAR-10 Batch 3: cost:0.00040637690108269453 | acc:0.5811998844146729
Epoch 200, CIFAR-10 Batch 4: cost:0.0011811762815341353 | acc:0.5823999047279358
Epoch 200, CIFAR-10 Batch 5: cost:0.0006032247911207378 | acc:0.5947999358177185
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="Checkpoint">Checkpoint<a class="anchor-link" href="#Checkpoint">&#182;</a></h1><p>The model has been saved to disk.</p>
<h2 id="Test-Model">Test Model<a class="anchor-link" href="#Test-Model">&#182;</a></h2><p>Test your model against the test dataset. This will be your final accuracy. You should have an accuracy greater than 50%. If you don't, keep tweaking the model architecture and parameters.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="o">%</span><span class="k">matplotlib</span> inline
<span class="o">%</span><span class="k">config</span> InlineBackend.figure_format = &#39;retina&#39;
<span class="kn">import</span> <span class="nn">tensorflow</span> <span class="k">as</span> <span class="nn">tf</span>
<span class="kn">import</span> <span class="nn">pickle</span>
<span class="kn">import</span> <span class="nn">helper</span>
<span class="kn">import</span> <span class="nn">random</span>
<span class="c1"># Set batch size if not already set</span>
<span class="k">try</span><span class="p">:</span>
<span class="k">if</span> <span class="n">batch_size</span><span class="p">:</span>
<span class="k">pass</span>
<span class="k">except</span> <span class="ne">NameError</span><span class="p">:</span>
<span class="n">batch_size</span> <span class="o">=</span> <span class="mi">64</span>
<span class="n">save_model_path</span> <span class="o">=</span> <span class="s1">&#39;./image_classification&#39;</span>
<span class="n">n_samples</span> <span class="o">=</span> <span class="mi">4</span>
<span class="n">top_n_predictions</span> <span class="o">=</span> <span class="mi">3</span>
<span class="k">def</span> <span class="nf">test_model</span><span class="p">():</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Test the saved model against the test dataset</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">test_features</span><span class="p">,</span> <span class="n">test_labels</span> <span class="o">=</span> <span class="n">pickle</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="nb">open</span><span class="p">(</span><span class="s1">&#39;preprocess_training.p&#39;</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s1">&#39;rb&#39;</span><span class="p">))</span>
<span class="n">loaded_graph</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">Graph</span><span class="p">()</span>
<span class="k">with</span> <span class="n">tf</span><span class="o">.</span><span class="n">Session</span><span class="p">(</span><span class="n">graph</span><span class="o">=</span><span class="n">loaded_graph</span><span class="p">)</span> <span class="k">as</span> <span class="n">sess</span><span class="p">:</span>
<span class="c1"># Load model</span>
<span class="n">loader</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">train</span><span class="o">.</span><span class="n">import_meta_graph</span><span class="p">(</span><span class="n">save_model_path</span> <span class="o">+</span> <span class="s1">&#39;.meta&#39;</span><span class="p">)</span>
<span class="n">loader</span><span class="o">.</span><span class="n">restore</span><span class="p">(</span><span class="n">sess</span><span class="p">,</span> <span class="n">save_model_path</span><span class="p">)</span>
<span class="c1"># Get Tensors from loaded model</span>
<span class="n">loaded_x</span> <span class="o">=</span> <span class="n">loaded_graph</span><span class="o">.</span><span class="n">get_tensor_by_name</span><span class="p">(</span><span class="s1">&#39;x:0&#39;</span><span class="p">)</span>
<span class="n">loaded_y</span> <span class="o">=</span> <span class="n">loaded_graph</span><span class="o">.</span><span class="n">get_tensor_by_name</span><span class="p">(</span><span class="s1">&#39;y:0&#39;</span><span class="p">)</span>
<span class="n">loaded_keep_prob</span> <span class="o">=</span> <span class="n">loaded_graph</span><span class="o">.</span><span class="n">get_tensor_by_name</span><span class="p">(</span><span class="s1">&#39;keep_prob:0&#39;</span><span class="p">)</span>
<span class="n">loaded_logits</span> <span class="o">=</span> <span class="n">loaded_graph</span><span class="o">.</span><span class="n">get_tensor_by_name</span><span class="p">(</span><span class="s1">&#39;logits:0&#39;</span><span class="p">)</span>
<span class="n">loaded_acc</span> <span class="o">=</span> <span class="n">loaded_graph</span><span class="o">.</span><span class="n">get_tensor_by_name</span><span class="p">(</span><span class="s1">&#39;accuracy:0&#39;</span><span class="p">)</span>
<span class="c1"># Get accuracy in batches for memory limitations</span>
<span class="n">test_batch_acc_total</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">test_batch_count</span> <span class="o">=</span> <span class="mi">0</span>
<span class="k">for</span> <span class="n">train_feature_batch</span><span class="p">,</span> <span class="n">train_label_batch</span> <span class="ow">in</span> <span class="n">helper</span><span class="o">.</span><span class="n">batch_features_labels</span><span class="p">(</span><span class="n">test_features</span><span class="p">,</span> <span class="n">test_labels</span><span class="p">,</span> <span class="n">batch_size</span><span class="p">):</span>
<span class="n">test_batch_acc_total</span> <span class="o">+=</span> <span class="n">sess</span><span class="o">.</span><span class="n">run</span><span class="p">(</span>
<span class="n">loaded_acc</span><span class="p">,</span>
<span class="n">feed_dict</span><span class="o">=</span><span class="p">{</span><span class="n">loaded_x</span><span class="p">:</span> <span class="n">train_feature_batch</span><span class="p">,</span> <span class="n">loaded_y</span><span class="p">:</span> <span class="n">train_label_batch</span><span class="p">,</span> <span class="n">loaded_keep_prob</span><span class="p">:</span> <span class="mf">1.0</span><span class="p">})</span>
<span class="n">test_batch_count</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Testing Accuracy: </span><span class="si">{}</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">test_batch_acc_total</span><span class="o">/</span><span class="n">test_batch_count</span><span class="p">))</span>
<span class="c1"># Print Random Samples</span>
<span class="n">random_test_features</span><span class="p">,</span> <span class="n">random_test_labels</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="n">random</span><span class="o">.</span><span class="n">sample</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">test_features</span><span class="p">,</span> <span class="n">test_labels</span><span class="p">)),</span> <span class="n">n_samples</span><span class="p">)))</span>
<span class="n">random_test_predictions</span> <span class="o">=</span> <span class="n">sess</span><span class="o">.</span><span class="n">run</span><span class="p">(</span>
<span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">top_k</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">softmax</span><span class="p">(</span><span class="n">loaded_logits</span><span class="p">),</span> <span class="n">top_n_predictions</span><span class="p">),</span>
<span class="n">feed_dict</span><span class="o">=</span><span class="p">{</span><span class="n">loaded_x</span><span class="p">:</span> <span class="n">random_test_features</span><span class="p">,</span> <span class="n">loaded_y</span><span class="p">:</span> <span class="n">random_test_labels</span><span class="p">,</span> <span class="n">loaded_keep_prob</span><span class="p">:</span> <span class="mf">1.0</span><span class="p">})</span>
<span class="n">helper</span><span class="o">.</span><span class="n">display_image_predictions</span><span class="p">(</span><span class="n">random_test_features</span><span class="p">,</span> <span class="n">random_test_labels</span><span class="p">,</span> <span class="n">random_test_predictions</span><span class="p">)</span>
<span class="n">test_model</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Testing Accuracy: 0.5921875
</pre>
</div>
</div>
<div class="output_area">
<div class="prompt"></div>
<div class="output_png output_subarea ">
<img src="data:image/png;base64,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
SKLJsYiIiIhIosmxiIiIiEiiybGIiIiISKLJsYiIiIhIosmxiMgsmNlJZvZpM3vczMbNbIuZ/bmZ
DRxmPyvSfVtSP4+nfk9aqLHLsWE+3qNmdquZ+Qz/dS7ka5DWZWavMbOPmtkdZrYvvZ8+O8e+5uX7
8XQq89GJiEgrM7MzgG8Ca4AvAD8Eng+8HXi5mb3Y3XfNop+VqZ+zgH8DbgLOAd4MvNLMLnT3hxfm
VUgrm6/3aMHV05yfeloDlWPZe4DzgSFgK/G977AtwHv9IJoci4gc2rXEN+K3uftHs5Nm9mfAO4A/
An5tFv18gJgYX+Puv13o523Af0/Pefk8jluOHfP1HgXA3TfO9wDlmPcOYlL8/4CLga/PsZ95fa83
o+2jRURmYGanAw8BW4Az3L1WaFsGPAEYsMbdh2fopwd4CqgBx7v7/kJbKT1jXXqGoscya/P1Hk3X
3wpc7O62YAOWY56ZbSAmxze6+88fxn3z9l6fiXKORURm9hPp+NXiN2KANMH9BtANvPAQ/VwIdAHf
KE6MUz814Kvp05c+7RHLsWa+3qN1ZvY6M7vKzH7bzC4zs475G67InM37e70ZTY5FRGZ2djo+ME37
g+l41iL1I9JoId5bNwEfBP4U+DLwqJm9Zm7DE5k3i/J9VJNjEZGZ9afj3mnas/PLF6kfkUbz+d76
AvAq4CTiLx3nEJPk5cDnzeyypzFOkadrUb6PakGeiMjTk+VmPt0FHPPVj0ijWb+33P2ahlM/An7P
zB4HPkosKv3K/A5PZN7My/dRRY5FRGaWRSL6p2nva7huofsRabQY761PEWXcnp0WPokshUX5PqrJ
sYjIzH6UjtPlsD0jHafLgZvvfkQaLfh7y93HgGwhac9c+xF5mhbl+6gmxyIiM8tqcV6SSq7VpQja
i4FR4K5D9HNXuu7FjZG31O8lDc8Tma35eo9Oy8zOBgaICfLOufYj8jQt+HsdNDkWEZmRuz9ElFlb
B/xGQ/PVRBTt+mJNTTM7x8wO2P3J3YeAG9L1Gxv6eWvq/59V41gO13y9R83sdDM7sbF/M1sFfCZ9
epO7a5c8WVBm1pbeo2cUz8/lvT6n52sTEBGRmTXZrnQT8AKiJvEDwIuK25WamQM0bqTQZPvobwPr
gVcDO1I/Dy3065HWMx/vUTO7ksgtvo3YaGE3cArwCiLH8zvAT7r74MK/Imk1ZnY5cHn69DjgUuBh
4I50bqe7/266dh2wGXjE3dc19HNY7/U5jVWTYxGRQzOzk4HfJ7Z3XknsxPT3wNXuvrvh2qaT49S2
Ang/8UPieGAXsfr/fe6+dSFfg7S2p/seNbNnAb8DXACcQCxu2g98H7gZ+KS7Tyz8K5FWZGYbie99
06lPhGeaHKf2Wb/X5zRWTY5FRERERIJyjkVEREREEk2ORUREREQSTY5FRERERBJNjkVEREREEk2O
RUREREQSTY5FRERERBJNjkVEREREEk2ORUREREQSTY5FRERERBJNjkVEREREEk2ORUREREQSTY5F
RERERBJNjkVEREREEk2ORUREREQSTY5FRERERBJNjkVEREREEk2ORURERESS/w/QGjjHme37MgAA
AABJRU5ErkJggg==
"
width=355
height=319
>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Why-50-70%-Accuracy?">Why 50-70% Accuracy?<a class="anchor-link" href="#Why-50-70%-Accuracy?">&#182;</a></h2><p>You might be wondering why you can't get an accuracy any higher. First things first, 50% isn't bad for a simple CNN. Pure guessing would get you 10% accuracy. However, you might notice people are getting scores <a href="http://rodrigob.github.io/are_we_there_yet/build/classification_datasets_results.html#43494641522d3130">well above 70%</a>. That's because we haven't taught you all there is to know about neural networks. We still need to cover a few more techniques.</p>
<h2 id="Submitting-This-Project">Submitting This Project<a class="anchor-link" href="#Submitting-This-Project">&#182;</a></h2><p>When submitting this project, make sure to run all the cells before saving the notebook. Save the notebook file as "dlnd_image_classification.ipynb" and save it as a HTML file under "File" -&gt; "Download as". Include the "helper.py" and "problem_unittests.py" files in your submission.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment