Mr. and Mrs. Customer, I'm here to help you with the decision that you've already made. If you had to write a check for what your family's safety was worth, you probably couldn't write the check. This is easy.  I mean it. I was born to be a fighter, had these dreams and desires. I would be something better energy. Got a fire in my soul to keep burning. A pain that keep hurting. A curse is emerging through the blood of sh**. So listen, number one, what I want you guys to know, this is important.  I want to tell you guys I love you and I appreciate that.  I want to tell you guys the same thing that you guys are doing right now. You're like, Andy, I just had the courage to stand up for what I believe in. I had a dream and I fought for it, okay? So I just want you to know you're going to have the same opportunity that I had. And you're going to be in the same place that I was at.  Training is something you do every day. It's not something that's like a one-time event.  Dude, I'm fired up every day because this is what I do every day. Like I'm always in this, okay? And I'm going to tell you guys how you're going to get ahead of everybody. So I want everybody to write down life, okay? This is super important. I want you to understand what life does to you. Life makes a lot of people burn out, okay? Life literally burns people out every day. Why are some of you in here writing stuff down right now? Why did some of you write down life? Why did some of you not write it down? A lot of people think slow, act slow, believe slow. They just move slow. Like, dude, they're never really where they are. You guys are in an opportunity right now in this room where you guys can become millionaires. And I'm not playing. Like I'm so envious or why Andy?  You don't want to do the hard work? Get out of here. Go be lazy. If you don't want to do the hard work, do the easy work. You know what the easy work is? Broke. You know what the easy work is? Nobody looks up to you. You know what the easy work is? You're nobody's mentor. Dude, listen, I got one goal with you guys and it's not to teach you to make money. I'll do that. I think that's actually quite easy. The hard thing is getting you to be a freaking leader. It's the hardest thing that I'll ever teach you to do. So what does a leader do? A leader, number one, keeps their word, okay? So rule number one is what do we know that successful people have? Disciplined. Guys, if you want to get motivated, if you're looking for motivation, you guys can turn on YouTube videos all day long. You guys can go watch content every time you don't feel like doing it.  Only leaders have discipline. So discipline.  Discipline in a marriage, discipline in being a parent, discipline in having a best friend, discipline in, hey, hey, and I said keep your word. When I wake up every morning at five o'clock when that alarm goes off, I get up. I don't need my wife to tell me. I don't need to know somebody to nudge me. Listen, dude, when you're a leader, you operate two different ways. I want to ask you guys how you operate. I'm going to bounce around a lot because I got a lot of stuff I want to share with you and I got a short amount of time. By the way, you guys got a short life. You got a lot to do. So I suggest you fall in love with learning really quick. Okay, stop wasting your days. So every morning that I wake up, I think about who bet against me.  Go ahead and write it down.   You're not going to have the same language. You're not going to have the same focus. You're going to be focusing on different stuff now. Your body's going to start looking different, dude.  You're going to get serious. But when you start doing this, people that you are with currently in your life right now, I just want to just fair warning, you've been put on notice that 95% of them will not be okay with that.  You guys came after my change. You get it? Okay. There was an Instagram video that I played this morning. Okay, if anybody watched the first video I dropped today on Instagram and it said I had to move past my family. Okay, and I joined my chosen family. I need you guys to understand something. When you go to do things, see, people have put you in a box. They have put boundaries on you. Listen, a lot of people put boundaries on themselves. They put boundaries on themselves. Now they put it on you. And now they... You guys twins? Okay. All right.   All right. Anyways, no big deal. I got two twins. I was like, do you guys twins? I'm like, that's cool. But I would tell people you're twins. I'd be like, we're twins. Hey, but I want you guys to know something that literally like... Like the people that are with you now probably aren't going to be okay with you.   So I'm going to tell you guys something just so you understand this. How do I know that?  I had no discipline. Nobody believed in me. By the way, I'm a first generation wealthy family. First gen.  I want you to know this because I want you to make the decision. Are you going to be first gen? Hey guys, what's going on? It's Andy. A lot of you leave comments telling me that you need help. Do me a favor and tell you the best way to get a hold of me. Shoot me a text message right now,<PHONE_NUMBER>.<PHONE_NUMBER>. I'll help you with whatever you need.  Let's get back to the video. Please understand something. My dad made 60 grand a year as a chemist. When I started, I was 18 years old, I started as a car salesman. Because the barrier of entry to get in was really low. I made straight D's in school. I stuttered. I didn't know what I was doing. I didn't believe in myself. My dad said, get a job and stay out of jail.  I was raised poor. I was the kid that literally growing up, like I had friends and they had money. They were cool kids. But like when their parents came home and was like, oh, it's all go out to eat. Like they dropped the poor kid off and then all the other friends went to go eat because you could tell that I was poor. Like I knew the way people looked at me. But I knew there was going to be a point in time in one day in my life in which I was going to get an opportunity. I'm going to tell you guys, just so you're aware, if you're looking at this position, this opportunity right now is like, oh, we're in alarm cells.   You have an opportunity in front of you in which you can earn six figures. You can earn men six figures. You can earn hide six figures. You can earn seven figures. Dude, you can totally recreate your life and be with a group of people right now that actually care about you changing and becoming a winner and make money, which is priceless. You guys can do all this. All I asked God for at 18, I said, man, would you just give me a way out? Just like, I don't want this life no more. I don't like this. I don't like me. So 18 years old, I got a job selling cars. I'm going to tell you this.  We knew he was going to end up a car salesman. I want to tell you something. I made 125 grand my first year. I made 225 the next year. I made 500 grand by the time I was 20 years old, and I made 800 by 22. I want to tell you something. I was making 800 grand. I literally had a battle house, battle car, battle boat, battle toys, had money in the bank, was living my life, and they still laugh. They're still going to laugh at you. You know why? Because the people that are with you currently in your life now aren't going to support you never. They love you. They want to keep you safe. They love you. They want you to go, get security, screw security. I don't want security. You live in a time right now, guys. It's 2024. You guys live in an era where this universe will pay you whatever you're worth. Notice I said whatever you're worth. What are you worth? What do you know? How well can you speak? What is your energy like? What is your attitude? Everybody write this down. The person that can self-correct is forever wealthy. Can you correct today? Can you correct? What is your problem? Are you fat? Do you speak with a slur? Do you not look at people in the eyes? Do you not have confidence? Are you unattractive? Hey, listen. If you're ugly in this room, I'm cool with it. But you got to get in shape. It's the only way you're going to be attractive. Dude, listen, man. You got to look like you're somebody of authority. You guys get me? You got to do it. Okay? Like I'm looking at you.  You're not in very good shape. Are you? Do you know why? You've been around the wrong people. The people that you've been around didn't tell you that being in shape was even important. Does that make sense? Now you probably knew that getting in shape was, you know, kind of important. Like chicks, right? Yeah. You want to be attractive, right? Yeah.  You want to make a lot of money? Yeah. Okay. You want people to believe in you? Yeah. Do you believe in people that are in shape or people that are out of shape? People that are in shape. It's all common sense. Am I right?  You guys got to show people. I want when you're around people, people like, dude, I always wanted a friend like this. I always wanted a friend that was in good shape. You guys saw Aaron?    Aaron, you really don't like him, but since he was in shape, you like him. You guys see what I'm saying? Yeah.  Aaron walks in, he's all jacked up. You're like, dude, I like that guy. Why? You don't even know him yet. Because you guys judge people from the second you look at him. This is why you guys got to listen to me right now. Dude, I'm giving you the cold hard truth how to win. You're skinny, right? Yeah. You're skinny. It's just the truth, dude. You don't have to stay skinny, man. Dude, you work out for one year as hard as hell. Eat right. Stay focused. Dude, go to sleep on time. Wake up early. Do everything. Your body's going to change. Everything's going to change, dude. That's the beautiful thing about human beings. Dude, they're so resilient. Dude, my family, you guys in here can break your bloodline. I need you to understand this. Everybody write down, reprogram. I said the person that can self correct is forever wealthy. I thought about doing sales training with you guys today, but it's not worth it. I can give you guys some information that's going to totally change your life. It's going to make everybody say yes to you. Okay?  Because they're going to believe in you.  Okay? So do me a favor. Some of you in here, like he's got crazy hair, right? Right?  It's just the truth. This is the time right now where you're going to be like, hey, dude, I know I have crazy hair and I think that's cool. But you're not going to be a YouTuber. Okay? Unless that's what you want to do, you're going to be knocking on doors.  So now they won't even listen to your message. They won't listen to how you can help them because you got crazy hair. And you may say, well, I'm going to be me. And I'm cool with that. You could probably go knock doors, but you got to be ultra confident, bro.  Listen to me. This is why I do it. You know what I'm saying? This is why I do it. Okay? For like cancer awareness. You know what I'm saying? I want people to ask me about my hair so I can tell them about cancer awareness. It's a trick I use.  They don't know, like what's it for? Is it for because you're young? Like this kid's out partying or something. Now he's knocking on my door. Like there's got to be some value to it. And I'm saying, I'm just telling you the truth. Right? Like, dude, like people are, this world's not fair. Okay? That's why you got to have the unfair advantage, which is what I'm giving you in this room. Your goal is to be a leader. So I'm going to write down rule number one on being a leader. It's to self lead. Underline self. To be a leader, you have to lead yourself before I'll let you lead me. Do you guys want to lead people through the cell so they can say yes, and then you can sign them up? Yes. You can't lead them if they don't think that you're capable of leading yourself. You guys get it? Yes. You got facial hair? Yes. Better be tight. You got hair on your head? Better look good.  You got eyes? You better make sure you got eye drops. Make sure you clean the crusties out of your eyes. You got a shirt on? Make sure you don't have food on it. I'm just telling you, at the end of the day, by the way, you don't have to be anybody else. I'm still letting you be you. I wear shorts, dude, people crack. They're like, dude, this guy's shorts are so short. Dude, listen to me. I'm so confident in who I am. I can run around naked and close people. I don't even care. So I want you to feel that way and you to run your way. Does that make sense? Yes. But I also want you to become who you need to become so you can run that way. Dude, the eyes are the window to the soul.  You're hoping that this is going to change your life and this isn't going to change your life.  You're in charge of changing your life. Now, you have an opportunity, like I had at 18, in a company that wants you to not only make money but also wants to self-develop you and make you become a good person. Dude, Brandon, the reason why I do this with Brandon and why I wouldn't do this with anyone else is because Brandon is such a good heart. Brandon has plenty of money. He doesn't do this for money. Matter of fact, Brandon, his wife's at home saying, why are you doing this? We need you at home. Why are you with all these strangers and all these people and why are you trying to build this again? He already built an eight-figure alarm company and sold it. Why would he build it again for the people? He's a leader. He loves seeing people win. I want to give you guys a secret and you guys may not understand it until later in life but if you're mature enough to understand it now, you just change your whole life. You became the most dangerous person in the world. So once upon a time there was a guy who was broke. This guy was me.  Basically, and I felt empty. I literally, my mom left when I was two.  She's a crackhead. She's an alcoholic. I'm nothing like her. Not a victim's story.  I have five brothers and sisters. There's a Jerry Springer show growing up. Kids raising kids. Having sex way too young.  Doing drugs in elementary school. I mean, dude, nobody's around. Where's the mom? Where's the dad? Where's the love? Where's, some of you may not have great parents. My kids have great, great parents, okay? But that wasn't my story.  I know people that have been abused.  I know, dude, you guys all have your own story. But I want to tell you guys, as I sit here, I had this hole in my heart and I thought if I made money, I thought like all the time that people made fun of me and all the time that I was, you know, like, dude, I used to, I'd ask my dad, hey, can I have $5 to go down to, there's this place called Frontier City growing up, it's like an amusement park. Like, you know, so I can go down to this amusement park with my friends.  So I would have to jump the fence. So I would ride with the parents, with the kids, seventh grade. They're all like walking in like normal people and then I ditch around the side. Dude, I'm a kid. I would go and climb the barbed wire fence and jump in. Dude, do you think those parents saw me? They knew what I was doing. I didn't go through the line with them. Dude, but I was like, I'm going. Like, I don't like that. That's not who I was, but I wanted to just be a part of everything. I wanted to fit in.  I learned later in life that my greatest thing that some of you in here, if you haven't fit in, this is your time. This is your time. And if you have a crazy story, people love that.  You don't have any to tell. I've got millions to tell. I should be dead a thousand trillion times. I'm not. So what does that mean? I'm supposed to give you a message. I want to tell you guys how to be rich in your heart without money. That's what this is about. And if you can do that, you'll be a leader and people will want to be around you and then you can get rich in your wallet. You guys, all you do for a living, write this down, you help people help themselves. It's all you do. Nobody in here has to sell anything to anybody. Now, I will tell you how to persuade, which is when somebody doesn't understand something, I will show you how to influence and persuade them to get them to understand by painting pictures, telling stories, selling ideas, selling situations. I will show you how to get your point across well. But that's your job. Your job is to help people help themselves. And by the way, have people already made a decision that they want their family to be safe? Yes or no? Yes. Are you even asking them to make a decision? No. They've already made it. Say, Mr. and Mrs. Customer, I'm here to help you with the decision that you've already made. I just noticed that you didn't have an alarm set up. You've already made a decision that you wanted to protect your family all the days of their life. Am I correct? You already made a decision. I'm sure your family's first and it's the most important thing to you over your job, your career, and everything in between. So I just haven't seen a alarm on this place, which is a little bit concerning. So at the end of the day, life is uncontrollable. We can't control what's going to happen, but what we can control is I can have an alarm on this house and your family can sleep like a baby at night and in the event something happens, it will scare anybody and everybody out of here and alert the authorities within seconds. If you had to write a check for what your family's safety was worth, you probably couldn't write the check, could you? But if you could, it'd have to be worth at least $49. Let's get this set up, guys. I'm not selling you. This is the truth. You guys hear me? Yes. If you guys hang around me, you'll learn the reason why I get everything that I want is because I don't sell anybody. I tell the cold hard truth and people, they can't deny the truth because it's real. That's why you don't have to be slimy, sleazy. You don't have to play tricks. You can just tell them. Say, guys, I'm here to talk about a decision that you already made. You already made a decision that you want your family safe and protected. Would you agree? Yes. Yes, they can't say, no, I want them hurt. No, that's what I'm saying. I noticed there wasn't an alarm on the property. And if there was one, I wouldn't be here. And if you have an alarm on the property, but it's not new 2024 AI technology, like the one that we use, well, that's a problem too because we got to make sure that it's fully functioning and effective in the right way. Would you agree? Yes. Yeah. See? So I'm going to take that alarm company out or I'm going to put an alarm on. But if anybody has somebody that they care about in that home and if I knock on your door and you're like, just me and I don't have a wife and I don't have kids, okay, cool. Hey, if you don't want to be safe and you don't have a family and that's totally cool and I love that.  No big deal. I'll move on to the next house. But if there's someone else living in this house other than you and you can write their name on a piece of paper, I assure you your jobs protect that person. And that's what I'm here to talk about. You guys got me? Yeah. Is this easy? Yeah. This is easy.  I mean it. I will show you. Listen, by the way, are you guys going to have relationships? Yes. You pay attention to what I teach you. You will run those relationships and make them great and you will get whatever you want. Are you guys going to have friends? Yes. Okay, you want to be the follower or the leader? Leader. Good. I'll show you how to be the leader.  I will show you how to get whatever you want in life and not manipulate in a bad way. Like, oh, I'm so good. This guy taught me how to get whatever I want. Not for bad for good, okay? Trust me, dude. Guys, this stuff I'm going to show you will help you with everything in your life. Hey, guys, what's going on? It's Andy. A lot of you leave comments telling me that you need help. Do me a favor. I'm going to tell you the best way to get a hold of me. Shoot me a text message right now.<PHONE_NUMBER>.<PHONE_NUMBER>. I'll help you with whatever you need.  Let's get back to the video. Okay? So, there's this hole in my heart. I realized if I made all this money, I was going to do great. So, and by the way, I want to tell you something. I don't care what anybody told you you think that you can make in this company. You can make whatever you want. Okay? If Brandon even tells you, hey, my top rep makes this, I don't care. You can still do whatever you want. Does that make sense? Yes. Okay? When I started selling cars, they told me the top salesman in the country made, this is 1999, made about 120 grand. So, because that's what I thought, I had that envision in my head. I was programming myself that if I gave all my efforts, that could be the money I could make. Well, when I was 19, I had a new manager come in and he goes, dude, that's a lie. I made 225 selling cars in Georgia. And I was like, dude, show me your pay stub. And the guy went to his glove box, pulled it out, showed me his pay stub, sure enough, he got me 225 grand. 19 years old, I made the same money because that dude programmed me. At 19, at a young age, I want to tell you this, I'm not very book smart, but I'm super street smart. I realized that whatever I thought was going to happen was going to happen. I realized that all the times I've been in a fight, anytime that I thought about someone else knocking me out or me getting hurt, I always got hurt and always got knocked out.  I learned that when I wrestled, if I even envisioned that person choking me out, I always got choked out. But I envisioned when I wrestled somebody, if I was like, dude, you don't want to wrestle with me, you don't want to smoke you, and I didn't think about anything except for smoking them, I realized that I got it. I realized that going and picking up a chick, no matter how hot they were, whatever, right?  No, no. No, what if she was like super hot though, like 2011, like just, oh my God, like one to ten, she's an 11. You would overthink it. But if she was ugly, you'd be like, I can pull that, come on man, this is easy. It's all the same.  That's how you pull the 11. It's all here. It's all here.  Overthinking is what kills you. There's this thing in your head called the amygdala. I better write this down. You want to study this. A-M-Y. I'm gonna tell you how to spell it. A-M-Y-G-D-A-L-A. It's called the amygdala. A-M-Y-G-D-A-L-A. It creates diseases in your head. It makes stories up, fake stories.   But once you understand that the amygdala, A-K-A, the resistance, why you would go do it, I just got rejected at three doors. I don't know, I don't want to go. That's the amygdala, bro. The amygdala lives on your spine. You guys need to research this. It is real. Every time you go to create a better life for yourself, that amygdala, it tells you, you can't do it.  You have nothing to prove to everybody else. I don't know why you're doing this.  You're not capable of it. You're not worthy. You're not qualified. You're not good at this. These people are better in you. They're smarter in you. It runs your head. But if you can listen to me right now, do you guys understand what I'm saying? And when that amygdala starts to pipe up, you tell it to shut its mouth. Because I want you to understand something. This is where you go from being a weak-ass baby to a savage. When you tell that amygdala, which, by the way, if you make it go through this, what you're about to go through and go do, if you make it and you tell it, we're going to do this, and you don't waver, you're unrealistic, and there's no negotiations. It's a non-negotiable. Guess what happens? That amygdala will fight for you till the death. It's your best friend. But you guys have been allowing it to run you. You start running it.  And so now I tell my amygdala, I'm like, dude, we're going to do this. And once it realizes, because it has to go through it with you, I got to go hit on this chick. I'm just giving an example that I know is way above my rank. But I'm not afraid. Come on, man. We're going to go knock this down. We're going to go lock this up. We're going to go shut that door down. I got this, man. Every door I knock on, everybody says yes. You can't open the door and tell me no. It's physically impossible. Once you start to become delusional like this, everybody buys. And everybody's attracted to you. Because they're like, I don't know what it is about this guy, but I just, like, it's like you're in charge. That's it. Without telling them you're in charge.  Do you guys get me? Yes. This is the secret, guys.


Jeff Frick here. We're on the ground at Spark Summit 2015 in San Francisco. Spark is the hottest technology that's going right now. There's a ton of people here, a ton of good vibe. I think it's the third Spark Summit and we want to come up and give you a taste. So we're joined here on our next segment by Sachin Guy. Did I get it right? Yep. All right. He's the Spark Practice and Innovation Labs leader at Impetus, so welcome. Thank you. Good to be here. Absolutely. So Impetus was just on the Cube at Hadoop Summit last week. What's the big delta between Spark and Hadoop? Are they competitive? Are they complementary? What's kind of your take? So it's quite an exciting space and a quite dynamic space right now. So Hadoop has been here for quite a few years and then Spark has been bringing the unified platform advantage as well as the in-memory processing advantage that we have. So a lot of customers, a lot of interest has been generated around Spark space right now. And we have been doing quite a few things over here in Spark. We are doing research and development, building a deep machine learning engine over on top of Spark. We have been building IPs. So one of these products we are demonstrating over here, Stream Analytics has a Spark streaming engine that we are building on top of that. We are also doing a lot of technology exploration so Spark is quite a dynamic space. It keeps on innovating. So there's data frames which came in March. Now there's ML pipelines. So we keep on doing the exploration which is happening around in the open source space. Also we are doing a lot of consulting around the space. So quite a busy thing. Busy time. Yeah. So we were at Hadoop Summit talking about the big data warehouse. Right now we are trying to build big data warehouse with Spark capabilities for the customer. Talk about some of the customer experiences that, you know, you are out in the field, you said you are doing some exploration. What are some of the applications that you are seeing that people could do now that they couldn't do before? So one of the things Hadoop was primarily famous earlier was for doing a lot of volume data. There could be a lot of variety of data. But the velocity part at the time of consuming it, consuming the data in applications was missing. The in-memory processing was missing. So Spark brings that advantage across. And it opens a lot of floodgates for applications for the customer. So they want to do a lot of sequel type of exploration on this. They want to do machine learning. They want to do graph processing, advanced data science kind of operations. And of course the streaming part of it. Streaming is pretty hard. So all of this, if they want to do it, Spark offers that unified advantage. You don't have to have five kind of tools to do that. You can do it with one platform. That brings a lot of flexibility and a unified advantage to the customer. So most of our customers actually start off doing some certain kind of a POC on why would we like to do a Spark versus what we were doing in a Hadoop environment, a Hive or an Impala kind of environment. They usually start with that analysis. But then when they discover Spark, they actually feel that unified advantage. And that's where we are building our products on. That's where we are building our streaming engine. We are building our machine learning pipelines on that. And it's use cases which have been coming from telecom customers, financial customers are centering around things like could we do kind of fraud detection? Could we have the machine data being coming up? So recently one of our manufacturing customers, they actually came up with a requirement to set up the entire data hub. And a lot of that data hub is components would be Spark over there. A lot of those data hub components. And are they taking out some of that other technology or is this all new workloads that they're building apps on Spark? So it's kind of two use cases that are coming up right now. One is of course migrating the old workloads. So the workloads they could probably do in a database kind of environment, whether they can do it in a Spark kind of environment now. Okay. Second kind of workloads is the new workloads. The new workloads are the advanced data science algorithms they would like to implement. It's a deep learning. So deep learning is something which was pretty much it's a very exciting space right now to be in. Right. And we have built a huge lot of algorithms, library around it. This is something which we could not do with the traditional tools. You were constrained with the kind of data that you could do. And with Hadoop also, people were constrained in terms of the processing power in terms of the power. So it's Spark offers that 100x kind of advantage in terms of processing also. So now those deep learning algorithms, which we have built actually give you a great advantage in exploring those advanced data science use cases. Exciting times, huh? Lot lot of things coming up, lot of queries from the customer, lot of products that can be built in this space. So that's why the research team over in Impetus Innovation Labs is actually trying to be at this cutting edge of the cutting edge. The cutting edge to the cutting edge. Careful. It's dangerous out there on the cutting edge of the cutting edge. It is kind of exciting more than dangerous. Okay, good. All right. Excellent. Well, Sachin, thanks for stopping by. Got to get in the hook here, but good times and sounds like you said you're on the cutting edge of the cutting edge. So I'm sure you'll have a lot more fun than danger, right? Sure. It's going to be fun. And it's going to be a lot of good return on investment that we are going to bring to the customers over here. Awesome. Well, thanks again for stopping by. I'm Jeff Rick. We're on the ground at Spark Summit 2015. You're watching the Cube. Thanks for watching.


Hey, this is Brett and this 2022 Jeep Wrangler Unlimited Sahara is stock number 14468Z. I'm here at Summit Automotive in Fond du Lac, Wisconsin, you're new and used Jeep and Jeep Wrangler headquarters. This 2022 Jeep Wrangler Unlimited Sahara has the 2-liter turbocharged 4-cylinder engine. It puts out 270 horsepower, it's paired up with the 8-speed automatic transmission. This Jeep has been fully safety and inspected by our service shop, has a fresh oil and filter change. All the fluids have been checked and topped off per the state of Wisconsin inspection process. And this Jeep is 100% ready to go super clean all the way around. That's exactly what I'm going to do in this video is go all the way around inside underneath, start it up, take a look under the hood, show you all the options and give you the most accurate representation that I can of the vehicle. Bright white clear coat is a color. I show all my videos in 4K. If you like the video, subscribe to the YouTube channel. Click the bell notifications. You won't be sorry you did. We do more videos than anybody on Wranglers. And by clicking those bell notifications, you can stay current on our ever-changing and vast Wrangler inventory here at Summit Automotive. This one comes with the 18-inch painted and polished aluminum wheels. It has Goodyear Wrangler all-terrain adventure tires. These are 25570R18s, and I would say they have right around 50 to 60% of the tread left on them. Frame and underbody looks pretty good. This is a one-owner clean title history, clean car facts out of Michigan. You get the painted fenders and the painted hardtop on this one. Coming around the front here, the front bumper, no major dents or dings. You can see it's never been drilled in either as the factory fog lights. You get these silver inserts around the seven-slotted grille as well as around the headlight bezels. The hood is in fantastic condition. I didn't see any dents or dings on there. That looks really good. Passengers side front fender is in really nice condition as well. No scuffs or scrapes. And the passengers side front wheel is in fantastic condition as well. No scuffs or scrapes on there. A couple little Easter eggs. You get these sandals and that plastic shroud there as well as Jeep climbing up the side of the windshield. And as you go down this side of this 2022 Jeep Wrangler Unlimited Sahara, taking note of how clean the body is, how reflective and mirror-like that paint is. I take these HD videos so if you're far away or even if you're close by and you just cannot make the trip down, but you're still interested in purchasing the vehicle. You can see the vehicle, hear the vehicle, and have confidence in what you're looking at before you even get here. So when you do get here, there's absolutely no surprises and you can make a smart and informed buying decision from wherever you're at. If this video helps you make that buying decision, let your salesmen know that you saw the video, that it was helpful, and that bread sense here. Back wheel, absolutely perfect as well. Four-wheel disc brakes on these Wranglers and the back tires have just as much tried as front tires. Underbody looks really good, as you'd expect on a 2022, but I have seen some that aren't great. Factory painted step bars and the door hinges always like showing these. You want to make sure that there's no corrosion on these. I know it's a 2022, but always got to check. These are in fantastic shape. T-50 is for the Torx bit that you use to take those off. We did a demo on how to take your doors off your JL. If you want to check that out, that's in the video or in the description below and in the right-hand part of the screen. Rear bumper is in great shape. No dense thing, scuffs or scrapes on there. The matching spare tire and wheel are in excellent condition. This is an example of a brand new tire, same brand and style. Exact same tires that are on it. Back here, the storage area is very nice and clean, and this one does have the Alpine Premium Sound System. You get the factory subwoofer back here. You get a nice storage area. There's your front license plate holder. Door hinge and roof and windshield bolt holders back here as well. You can take these hard tops off. There's four bolts on each side, two quick disconnects. We also did a demo on how to take your hard top off your JL Wrangler. If you want to check that out, that's in the upper right-hand part of the screen. Very popular video. Also linked in the description below. Back here, you get seven slots on the door. Then you get the JL badge with the two-door, four-door wheel base and overall length. Water folding, water folding and overall width and tire width. Coming around to the driver's side. No major dents or dings. That hard top is in really nice condition. That's a really expensive option to get the Color Match hard top. It's usually about $1,500 more than just the normal black hard top. Back wheel for full disclosure. On the driver's side, no scuffs or scrapes. Absolutely perfect. And down the rest of the side of the Jeep, doors look really good. Didn't see any dents, didn't see any dings. Very nice and clean. Door hinges are in great shape as well. And let's check out those back seats. No rips or tears back here. It does have the latch child safety system for any child car seats you may have. You get the factory floor mats back here. You also get two USBs, two USB-Cs, 115 volt, 150 watt plug-in and rear window controls as well as air vents. These seats do fold down for extra storage and you can see they go down pretty nice and flat. And then when you put them back up, you can have these headrests down for better visibility if nobody's riding back here or just put them up like so. Child safety locks on the back doors and the inside and bottoms of the doors all look fantastic. I do want to show you the VIN sticker. No previously owned in Canada trucks or Jeeps here.  No rips or tears on these seats. They are in really nice condition. You get the Sahara stitched into the backrest. They look really good. Driver's seat height adjuster as well as lumbar control. Factory floor mats, auto headlamps, tilt, telescopic steering wheel, power mirrors, power locks. Hop inside, check out the miles, the radio and everything that this one has to offer. On the interior, only 14,903 miles. You get that Sahara animation on that seven inch LCD display. Digital speedometer, compass display. You can change all the corners to read pretty much whatever you want. Instrument cluster is very nice and clean. You get the leather wrap steering wheel, cruise controls on the right, Bluetooth and information center controls on the left and audio controls on the back of the steering wheel. This one has the 8.4 for C radio. You get the factory navigation system on here. There's highway 41, so that is working nicely. AM, FM and Sirius XM radio capabilities on this one. And then you can check out your backup camera, which they've made those crystal clear. And then you get all your different apps on here, including off-road pages, which are pretty cool and projection manager. You can project your cell phone to the screen via Android Auto or Apple CarPlay. We did a demo on Android Auto with an 8.4. If you want to check that out, that's in the upper right hand part of the screen. Off-road pages take a second to load. So while they're loading down here, you're more tactile volume tuning and climate controls, including those dual climate controls. Start, start, stop capabilities, stability control. You may be lost, but never stuck in a wrangler. And then this is your speed select crawl control there as well. Here your off-road pages, you get all your different accessory gauges, coolant temp, oil temp, battery voltage, trans temp, oil pressure. And then you get your pitch and roll. You do have latitude, longitude on there as well as altitude. And then this is your steering angle. That's pretty cool. So as you turn the wheel, you'll notice that those tires up top change, as well as the steering angle. And then the transfer case, if it's in too high or four high or four low. Down here, your window controls, as well as a USB, USB-C, and AugsJet. 8-speed automatic transmission, your 4x4 shifter is right there. You get your keyless entry with the remote start with the flipper key. I always like those. They're nice and chunky. Always know which key you have in your pocket. And then you get these silver dash trim. It actually has just a little bit of metal flake to it. I think that's probably billet silver is the color that they use for that. Anyways, that looks really good. Passengers side, floor mat, and seat are in excellent condition. I don't think this vehicle's ever been smoked in. It smells very clean. Front hardtop pieces come off pretty easy. You get assist and SOS buttons, auto dimmy mirror, and home link buttons for your garage door security systems and lighting systems. Wind shield looks great. I didn't see any chips or anything like that. Or cracks in it. Always want to check that on Wranglers as well. Let's start it up and take a look under the hood. Starts right up. No check engine lights or anything like that. I would personally like to thank you for checking out the video today. And hopefully from this HD video, you've been able to verify the quality, condition, options, and of course, cleanliness of this vehicle all the way around inside and out. Under the hood, we have a 2.0-liter turbocharged 4-cylinder engine. 270 horsepower engine base. Very clean. Runs very smooth. Once again, this Jeep has been fully safe to an inspector by our service shop. It has a fresh oil and filter change. All the fluids have intact and topped off. There is the emissions sticker. And this Jeep is 100% ready to go. Super clean all the way around. All the lights are working nicely. And I would highly recommend this Jeep Wrangler from a quality and condition standpoint. I'd ship this one back to Michigan, California, Texas, New York. I'd sell it to a family member. Whoever's going to get this thing is going to be very happy with it. And to see more pictures of this Jeep or one of our other 550 new and used cars, trucks, SUVs, minivans, Wranglers, you name it. We got to go to the website right there, summitauto.com. Full pictures and descriptions of every single vehicle. All at summitauto.com. If you want to check out more HD videos, you can go to youtube.com. Click the bell notifications to get updates on the videos I do each and every day, as well as having access to one of the largest catalogs of vehicle and Jeep walk-arounds on YouTube. Over 9,000 videos and over 500 Jeep videos on there. Plus, if you subscribe and click the bell notifications, you'll be updated every time I do a video. So, you do not miss out on gems like this Jeep right here. In fact, in a second, you will see a link to subscribe to my YouTube channel in the upper left. A link to all the Wrangler videos I've ever done in the upper right. A link to this vehicle on our website in the lower left. And a link to one of our latest YouTube videos in the lower right. Click those, check us out. We're super excited to help you with this Ultra Clean 2022 Jeep Wrangler Unlimited Sahara in bright white clear coat. Thank you so much for checking out the video. Remember to like, subscribe, and share on the YouTube channel. I really appreciate it. Thanks again. Have a great day.


So we're definitely not going to do any particle physics today, but today I'm going to give you help you do take a first few steps on training your first image classifier using PyTorch. Just before we start, can I get a hand for everyone who has used PyTorch before? Only a few. That's good because we're really going to start at the beginning. And so basically first I'm going to tell you first to start at what is actually an image classifier. That's not so difficult. Then we'll go by what's a neural network, how do we actually build one in PyTorch, and then finally what can we do with them. And in the spirit of this morning's keynote, I'm going to show you a bit how I played around with an image classifier and what cool things you can do with them. Okay, so first let's have a look at what is a classifier. So suppose we have a label training sets of points. So we have two dimensions, x1 and x2. And then we have a set of data points and they come in two classes, either red or green. Well, okay, that's cool. On this case we can see a pattern. So the green ones are on the left side of the screen and the red ones are on the right side of the screen. So we could say, for example, well, let's draw a line somewhere around here and then say everything that's left of this line is green and everything that's right of this line that's red. So now we have a model, a very simple model, it's just a line that can tell us whether a point belongs to one class or the other one. So then when we have an unlabeled data set, we have points like these, in this case just white points. Then what we can do is we can use the same line that we had before and use that to color all the points that we had into green and red. Well, so far that's a classifier and I'm pretty sure that most of you have seen something like this before. Now, sometimes you want to do something that's a little bit more complicated than using just a simple line. And in this case, we're going to use neural networks. Neural networks, probably most of you have heard about them, look something like this. Here you see a series of dots, circles and they represent neurons and they come in layers. So we have the input layer on the left, a hidden layer, there might be multiple in the middle and an output layer on the right. And they are connected by these lines. So how do these neurons actually work? Well, neuron looks something like this. You have a set of incoming signals on the left and all of these signals are then multiplied by a weight. These weights are the things that we use to train the neural network. They are the things that we must learn when we actually build one neural network. So what we do is we take those inputs, we multiply them by the weights, then sum them up and then in the end apply some kind of activation function of which the main property is that it's nonlinear, which makes the neural network more capable of learning stuff. Typically what we use, and we'll see that more today, is we use the rectified linear unit, shorthand is just value function, which is y equals the maximum of 0 and x. So basically it's 0 if x is negative and otherwise it's x. Okay, well that's fairly simple. So how do we actually use a neural network like this? What do we do with it? Well, in the case that we had before, so we had the 2D, we called these 2D points, we had 2 dimensions x1 and x2 and then we had these points that we wanted to classify in red or green. Well, we could use the neural network like this. We can say, well, we have 2 input nodes and one of them is x1 and the other one is x2. And then we use, we propagate these signals through the network with these weights and these functions. And then we think, we can say, well, we have 2 output nodes and then one of the output nodes is the probability that the point belongs to the green class and the other one that it belongs to the red class. So now of course, if you first make a neural network like this, it's not going to do what you want because you have to set these weights to the correct values. So what do you do is you take all those points that you have labeled before, you pass them through the network, see whether it makes an error and then tune the weights in such a way that it will actually perform better. So you have to do a lot of tuning before you get a neural network that actually does what you want. But we're talking here about image classification and not about 2D points. So what we want to do is instead of just having 2 inputs, we want to say when we have an image, well, in this case the left one here is a dog and the right one is a cat, that's something that we can easily see. But we would want a neural network to recognize something like that for us. And for that you cannot use a simple neural network like the one I showed before, but we're going to need something a little bit more complicated. We're going to need something that is called a deep convolutional network. Well, that's quite a mouthful, but in the end it's not so extremely complicated. Let's start with the deep part. A deep neural network is just a neural network that has more than one hidden layer. Preferably, in this case I think 10 or so, could be 20 or 30, but just more than a few. That's all that is to deep neural networks. And then the convolutional part. Well, we need convolutions in order to interpret those images. So on the left side here we see that the input to a neural network like this is an image. And what we do with these convolutions is we take a box and we say we aggregate all those pixels from that area of the image and then apply some function over it. We could say we could try to see whether there's a big difference from the light right to the left or the top and the bottom or whether all the pixels have approximately the same value. It's just some function that we apply using those weights of a neuron. And then what we do is we shift this box around across this image such that we get a matrix of the results of all this function across all the image. And in this case, you see we don't just use one convolution, but we get in the end four feature maps. So we could use four convolutions. Of course you could use many more. Then typically what you do after using a convolution is you sub-sample. So you say, well, for each out of two by two results we take the maximum result which is called max pooling or we could take the average result or something like that. That's just, we do that in order to reduce the size of our neural network because otherwise it might become too big and if we have too many weights to tune, it becomes too difficult to train. Typically after that we do more convolutions. So you have more future maps. In this case we do 10 more convolutions, then more sub-sampling. And in the end we make a fully connected layer and a fully connected layer is just one, just like the one I showed you in the simple neural network before. And then in the end we have an output, in this case two outputs. So we could, one of them could represent the probability of the image being a robot and the other one of being a cat. Something like that. Okay, well, a typical example of a convolutional neural network is VGG-16. VGG-16 is a big neural network and it consists of 16 layers and has in total 144 million weights. And what it does, I hope you recognize some of the ingredients here. We start with an image and this image is 224 by 224 pixels and then three layers, one for each color, red, green and blue. And then so what we do is we start at the left with two convolutions, then some max pooling to subsample, two more convolutions, more sub-sampling and then more convolutions, sub-sampling, more convolutions. And then in the end we end up with the blue areas. These are the fully connected layers that we have in the end, so a standard neural network at the end, but then big with like 4,000 nodes and in the end we have one layer with a thousand output nodes. So why a thousand? Well, in this case, this is because this network was made to be trained on ImageNet. An ImageNet has a collection of 14 million images that was annotated into a thousand classes, of which, for example, cat and dog. And so this network was trained by using a lot of computers to get like 90% accuracy on these 1,000 classes. So, well, cool, this thing already exists, but aren't we going to train our own ImageClassifier? Well, of course we are going to do that. And to do that we use transfer learning. So remember we had this network and this has already been trained. It has 144 million weights that have all reasonable values such that it can accurately classify all those kinds of images. Now we're going to make use of that by taking off this last part of 1,000 classes, just removing that whole last layer and putting our own layer at the end. Not necessarily a simple layer like that, but just the new classifier that we put on top. So we remove the end and we add our own layer. So this has the advantage that all the weights in the previous layers, they already have some reasonable values. This network already knows how to recognize sharp edges, round edges, strange patterns, all this kind of things, all the things that you typically see in a photo, it already knows how to deal with those. And then in the end, it comes up with a set of features and we build a classifier on top of that. Isn't that cheating? Of course it's cheating. But hey, you never get anywhere in life without a little bit of cheating. So what we want to do is we're going to make use of what people have done before and build our own classifier that doesn't classify stuff that they have trained it on because, well, if you want to classify images into exactly those 1,000 classes of ImageNet, well, of course, you can use the pre-trained version of VGG. If you don't, well, this is the way to go. You just remove the last layer and, well, then you're all set. So now you know exactly how to train your own ImageClassifier, right? Well, let's have a look at the code. But before that, you might ask me the question, why did he choose PyTorch and not Keras? Because you may have heard of Keras as well. Keras is also a library that allows you to do neural networks. But you could say Keras is there first or PyTorch is more flexible. You could say Keras is faster, which might sound very important. But the main thing that I think is important is that PyTorch lets you play with the internals. Basically that means that if you get to tweak the neural networks and not just import them and use them, that you learn more from PyTorch. So that was the main reason that I chose for using PyTorch. Well, okay. Now let's have a look at it. And here it gets a little bit technical. So bear with me. First, if we want to use PyTorch, we want to use a neural network, we have to define the neural network. And you do that by creating a class. In this case, we create a class that's called net. And this inherits from the neural network.module from PyTorch. And when we initialize this class, we first initialize the superclass, the module. Not so interesting. And then we define the four layers of our class. So first, there's the convolutional layer, which is a 2D convolutional layer with some parameters. We'll go over those in a minute. Then a pool layer, which is 2D max pooling. So this is a sub-sampling where we take from it, in this case, a kernel size 2. So a 2 by 2 matrix, we take the maximum value in order to reduce the size of our neural network a bit. And then we have two fully connected layers, like the normal layers that come after each other at the end. And then the second fully connected layer ends with 10 nodes. So we have 10 output nodes. Secondly, we have to define the forward method. And the forward method, it accepts a single argument that is called x, that is the input. And the input comes in batches. And in this case, these are 32 by 32 pixel images in three channels. Now if we then apply this convolutional layer, that's the first, the second thing we do, we apply the convolutional layer to x. And that converts it to 18 channels. So we get 18 different types of convolutions. And again, 32 by 32 pixels. Then we apply this value function, just to make it nonlinear, that helps our neural network with learning more complicated stuff. Okay, then we apply the pooling, which reduces the picture size from 32 by 32 to 16 by 16 pixels. And then since we are done with the 2D stuff, we have to reshape the whole vector to a single very long vector of size more than 4,000. Then we are ready to apply the first fully connected layer, again the nonlinear function, and then lastly the last fully connected layer, after which our output has a size 10. Okay, but hold on. We weren't going to train our own neural network, right? We were going to do transfer learning. Yes, that's right. What we first have to do, if we're going to do transfer learning, well, we have to import this pre-trained network. So what we can do in this case, I've chosen squeeze net, and I did that because, well, VGG is actually a little bit bigger than squeeze net, takes a longer to run. So I'd go for the easy option. So let's have a look at squeeze net. So squeeze net, you can simply import it and then instantiate it. Pre-trained is true and it will download the weights for you, which is a big set of weights, takes a while, but then you get a pre-trained network, and it's ready to use, all ready to use for you. But we weren't going to use that pre-trained network with a thousand classes, so we're going to modify it. Let's have a look at the internals before we modify it. So if we have a look at the internals, we see if we just print the network, it will show us all the layers, and we find that it consists of two parts. The first part is called the features, and it has a lot of layers, and I couldn't fit them all on the slides. I think it's 20 layers or so. And then you have lots of convolutions and pooling, and these revenue functions, all in a sequence after each other. And then in the end, there's the classifier part, which consists of four pieces of which you already recognize. There's the 2D convolution, there's the revenue, and then average pooling at the end. The first part is dropout, and dropout is a technique to help your neural network learn a little quicker by, while you're training it, dropping the inputs or the outputs of half, in this case, with a probability of 50%, so half of the neurons. That makes it impossible for the network to rely on a single neuron or a small subset of neurons, so it must make more connections to learn the same information, which basically makes it more robust. So what happens here in the classifier is we apply this dropout during training, then we have this 2D convolution from 512 to 1,000, and this is again where you see the 1,000 classes of output in the end. And then there's the value and the average pooling. So in the end, we have, again, 1,000 outputs, one for each of the classes that it wants to be able to classify. Now, if we are going to change this and make it our own classifier for our own classes, well, then all we need to do is, well, simply define the number of classes that we have. For example, four. Download the model, set it up. First, it has a parameter that says the num classes, so we can update that to four, although internally it's not even used, but let's do it to be complete. And then what we can do is we can take this classifier apart. Remember that the 2D convolution layer was the one with index one, and we can simply replace it with a new 2D convolution layer. That goes from 512, just like the original, but now to our number of classes, not 1,000. So that's all you need, and now you have a new neural network that you can train in order to classify your classes. Okay, now let's have a look at how you train a model like this. That looks like this. So we start with setting our model to the training mode. That's important. I'll get to why in a little bit. Then we need to define our criterion. How do we score whether the model is good or bad? In this case, we use cross-entropy loss. And we need to define an optimizer. And the optimizer in this case is stochastic gradient descent. We say, okay, these are the model parameters, and then there are some arguments that we'll have a look at at a later stage. And then we look through stuff that comes out of a loader object, and again, we'll look at the loader object later. And these are the inputs, so the images, and the labels, so the classes that you've labeled them to be. And for each of those sets of images and labels, because we do this in batches, you always process multiple images at the same time, for each of those sets, we first reset the optimizer because we don't want to use any information from the last batch. Then we simply pass the images through our neural network, and then we get some outputs. We calculate how good the outputs are, do the outputs correspond with the labels that we give it. Then we propagate this loss backward through the network, so we calculate for each neuron, how well did it do on scoring your training images. And then in the end, when we know that, we can optimize the weights. And then every time we loop through all our training images, we call this one epoch, and you're going to do this quite a few times when you want a classifier that works a little bit well. Okay, and once you've done that, say suppose you've trained 20 epochs, then of course you want to know how well does my model actually work. Well, for that, first we set the model to evaluation mode. So what is this difference between the training and evaluation mode now? Well, most importantly, it disables the dropout. Of course, if you're going to train, then it might work well to let your model use only half of the information in some of the stages. But when you're evaluating, when you're trying to actually classify an image, you want to make sure that you use all possible information that you have and disable dropout. So that's the most important reason why we always must call these eval and these train methods. Well, then we can say with no grad, which prevents the PyTorch to do internal calculations that you don't need. And then again, we loop through this loader, we pass the inputs through the model to get the outputs. We can get... So the outputs, these are vectors with the probability for each class, and we can get the maximum of these, which is then the class that would classify the images being. So we can get the predictions from that and we can sum the loss in order to get some idea of how well our model is performing. So I promised you also to have a closer look at the loader. So where does our data actually come from? Well, what you need to do first is specify where are your images on disk. And you do that by defining those image folders. And you want to have a separate train and test set. And so you define two image folders, one with a path through the train images and one with a path through the test images. But to both of those, you need to first also define a transform. So what methods will be applied to the images when they are loaded? And we define two different transforms, one for the training images and one for the test images. Let's first have a look at the test images. So what we do is we say we compose a transform, sorry, it consists of multiple steps. First we resize it to size 256. Then we crop out to the center, 224 pixels in the center, and then we transform it to a tensor so that PyTorch can work with it. Well, that's fairly simple, but for the training images, we do something that's a little bit different. What we do is we take a randomly resized crop of the same size from the image. So we don't always look at the same part of the image, but it could be a little bit more zoomed in or a little bit more zoomed out or a little bit more to the left or the right. This means that every time that we train an epoch, our model actually gets to see a different set of images. Well, the source images were the same, but the actual image it looks at is just a little bit shifted or zoomed. So it gets to learn not from the individual pixels, but from actually the information that's in the image. That's really important. Now once we've defined those train and test sets, we can define the train and test loaders, which are simply a data loader where we provide the data set that we want to use. We set the batch size. That's the number of images that we process at the same time. The number of workers is the number of processes that can process these images while loading them, and we say we want to shuffle them. That means that every time we train an epoch or we evaluate, we do this in a random order. For training, this is really important. For testing, it isn't. Okay, so we're almost there, but I skipped something that's fairly important. Remember that when we defined our optimizer, which is stochastic gradient descent, I said, well, there are these arguments at the end. And the most important one is the first one, the LR is the learning rate. And this is the rate at which we change the weights when we're training. So we need to figure out what is actually a good value. Now suppose that we have only a single weight, and I can only make a plot in a single dimension, so suppose we have a single weight, and we want to optimize this. We want to find the place right there at the bottom of this graph. Now suppose that we start all the way at the right of this graph, and we want to, by taking little steps, find the bottom of the graph. Then, of course, we want to make sure that we don't take, for example, steps that are too large. If we make steps that are too large, you could step all the way across the valley to the opposite side.  On the other hand, if your learning rate is too small, then, first of all, it takes a very long time to get there. But in this case, you'll find this local optimum there and you won't fight the global optimum. So balancing this learning rate is really important. So how do we actually find the best learning rate for our problem? Well, the best thing that you can do is just try them out. Basically, well, here we define a function. We set the learning rate for the optimizer to a certain value. And then for a certain range of values, so this log space from some minimum learning rate to some maximum learning rate with a number of steps. And for each of these learning rates, we set the optimizer to this learning rate and then we train for a number of batches. And then, after that, we evaluate for a number of batches. So what you'll then find is that, of course, during the course of doing this, your model is going to, first, you're starting with a very low learning rate, is going to improve very, very slowly. And after a while, this improvement is going to be quicker and quicker and quicker until your learning rate is so big that it will go all the way away from your local or global minimum where you're at and the performance will degrade enormously. So what this will look like if you do this is something like this. And also, typically, what you see is that, first, you have some value of loss, and as you increase the learning rate, your loss will go down until, after at some point, it will go up way, all the way until your model doesn't do anything anymore. So what we found here is that, typically, something, well, like 10 to the minus 3 is the optimal learning rate. So that's what we set it to. But, of course, the optimal value also depends on the state of your model. If your model doesn't do anything yet, well, then probably a very high learning rate is good. Well, if it's almost there and you just want to squeeze out that last percent of accuracy, then probably a very low learning rate is the right way to go. So for that, we have the learning rate scheduler. We can use, for example, the reduced learning rate on plateau, which is a scheduler that whenever the performance of your model during training has reached the sort of plateau, it's stable, it reduces the learning rate, and then tries again. So after every epoch, we then have to call scheduler.step with the loss that we found, and based on that, it might reduce the learning rate. That looks like something like this. So while you're training, your accuracy goes up at the beginning, and then after a while, it figures out, okay, maybe we're stable now. Let's reduce the learning rate, and you'll see that it takes these steps all the time until, well, at some point, you decide that the accuracy is good enough. Okay, we're all set. Let's have a look at actually some data that I've played with. So, of course, if you want to train a model, you need data. So what I did is I took one of these, a Raspberry Pi, and I set it to work for a couple of months, and I gathered a data set of photos taken in the world's largest cities. I took 72 cities, half a million images of 10,000 photographers, all in all some 30 gigabytes of data, and I made sure that all of these are licensed for reuse, such that I can show them to you right now. So, of course, the first thing that you do when you gather a data set is you have a look at the images themselves. So first, I live in Amsterdam, so what I did is I had a look at a subset of the images that were taken in Amsterdam. So this is a nice one. Typically, we don't have weather like this so often, but, well, it's nice, right? Something very typical, but also that you'll find in Amsterdam are bikes. This is a very typical scene from Amsterdam. For those of you who have been there, I'm sure you'll recognize it. Okay, well, this looks good, right? Let's have a look at another one. So this is a really nice view. But hold on. This wasn't taken in Amsterdam. We don't have any cliffs like within 200 kilometers from Amsterdam, probably even more. So what's going on? Let's have a look at the metadata. That says Amsterdam, so probably someone thought they were taken in Amsterdam. Well, it wasn't. On the other hand, it also has a tag that says Dublin. Interesting, interesting. There are quite a few tags, actually, on this image. And it couldn't fit more than this. This is less than 5% of the tags of this image. And I certainly don't see a teddy bear museum on this image, or all kinds of these things. So it turns out people don't always tag their images as they should be. So I had a look at where all the images that were supposedly taken in Amsterdam were taken in the world. Well, around here. And actually, the bench that we were just looking at was taken right there at the edge in Korea. Some nice island in Korea. Well, definitely not Amsterdam. So what you can do then, what you could do, of course, we only want the images from Amsterdam that were taken right there, the red dot in the middle. That's where Amsterdam actually is. What you can do is you can take all the images, take the median latitude and longitude. And now the mathematicians will cringe because of course these are circular values and you can take a medium of the latitude or a longitude. Well, in the end, you can just do it and it works. Then what you can do is you can remove all the images that were more than five kilometers away and you repeat this for all cities. Then we have a clean data set, right? Let's do it. Okay, then after that, I had a look at all the other tags and thought of something cool that we could do. These were the most common tags in this data set. Well, of course, if you're going to look for photos taken in cities, then the most common tag is city. Well, but I think other than city, maybe this one, skyline here, is the most interesting one. Let's try to make an image classifier that recognizes skylines of cities. So what I did is I took the ten most common cities in my data set. Those were these. Here are the image counts. I split these into a train and a test set like this and then we train a model. Hold on. We wait. First, we wait. And the way they actually is quite annoying because, well, training a model like this takes a while. In this case, I took a fast GPU. I used my boss's credit card. He doesn't know yet. He'll be a little bit surprised. And then I spent, like, 20 hours or so on training time. And then I had a model. So then, well, you feed in an image and who knows where this image was taken? This is London and I got it correct. Okay. Well, that's nice. So this one, where is this? This is Sydney. And it learned that. All right. Well, that's cool. This one. Anyone? This is Toronto. I heard it right there. Okay. Cool. This one is tough. Where is this? This is LA. And actually, the model got it all right. So it's pretty impressed. So this is clearly Chicago, right? And then here we have Philadelphia. Got it all right. Again, this is Tokyo. Cool. Even this one is not really so complicated. It doesn't have too many buildings. I would say I wouldn't know it, but it got it all right. It's Houston. Then here we have Shanghai. And this is clearly Chicago, right? Wait. What? What just happened? Well, it turns out there was one photographer who labeled all his photos with the tag Chicago. Well, all he did was take photos of sandals on pavement. And my model, well, it got it all right. It learned that a sandal on pavement must be in Chicago. And of course, well, then when you feed this test image to the model, it gets it all right. This must be Chicago. Okay. So we need to fix this. Let's come up with a plan. Okay. First, what we can do instead of splitting the images randomly in train test set, what we can do is we can split them by photographer. In this case, at least all those sandals will end up either in the train or in the test set. So then we wait. It takes a while. This is really annoying once in a while, because, well, it's late at night.  And then you think of a solution. You fix it. You start training. And then, well, you must wait till tomorrow to see the results. Anyway, the results of this one were terrible, because of course, well, if you put all the sandals in the train set, then it will get a very high train accuracy, but the test set accuracy will be terrible. In fact, it will just be over-trained on those. In the end, we just have too many mis-tagged photos. So I needed to come up with another plan. And in this case, what I did is I built another model. And in this case, so what I did, I took a model that classified only two classes, and I said either it has a skyline or it is not a photo of a skyline. And I trained on all data that I have, so half a million images, and I gave them the labels. Either it is a skyline when it has a skyline tag or it's not a skyline when it doesn't have the skyline tag. Then I could make predictions for all data and then only use the data that were labeled with a positive prediction for skyline for my original model. Again, then we have to wait. It takes a while. It gets really annoying after a while. But then in the end, the results of this were pretty nice. Out of those with a tag that had skyline, I had about 6,000 that were labeled by the model as actually having a skyline and about 1,000 that were labeled as not having a skyline. So I could just get rid of those. But in the other hand, I got 1,000 images that did have a skyline according to my model, but that didn't have the skyline tag. So still I ended up with about the same number of images. So I recreated this train test split that had to wait again. As I tell you, this gets really annoying and my boss will not be happy with me. And in the end, I got yet more results. And so as you can see, in the end, the accuracy was about, well, 70%. After 200 training epochs or so, so that's, I think, 24 hours of training, I think this was fairly reasonable. Okay, well, that's cool. Let's have a look at some of the actual results. So this was, it got it right. Chicago, of course, that's something I would also recognize. So that's cool. I think it actually learns to recognize some of these cities. Also Los Angeles, it got it right. In this case, the model said New York City, while in reality the label was Philadelphia. But to be honest, looking at this picture, I probably would have gotten it wrong as well. So sometimes it's not that bad. Here we have an example where the model says it's London, probably because of the bad weather, but it was actually taken in Toronto. Sometimes, though, you cannot explain the errors that the model makes, because in this case, well, although the skyline is a bit difficult to see, but you can see some high buildings in the background, but you can clearly see that this street definitely is not an American street, but it's something like in Asia. So this was actually taken in Shanghai, and it got it wrong. Yeah, so that was it. But before I end just some final remarks, training your own image classifier really isn't that difficult. All you need to do is cheat a little and do transfer learning, otherwise you won't be waiting for 24 hours but for months on end. Doing PyTorch is fun. Keras might be easier and faster, but PyTorch is a lot of fun. And in the end, having clean data is way more important than having a good model. Thank you. After this, if you want to have a look at my code, you can have a look at this GitLab link. You'll find an example or all the code that I use to create this image classifier. And keep an eye on our blog, blog.goateddriven.com, where I will make a sort of transcript of this talk. Thanks. There are questions. We have two mics, so please line up. Hi. You mentioned two very different kinds of hardware, the Raspberry Pi and the GPU. Can you say a little bit more about whether this is really practical on a Raspberry Pi alone and if it's not, then how does one actually take the next step to use the GPU as well? Yes, of course. Thank you. I did not train any of these models on the Raspberry Pi. I merely used it to collect my data, since that's just a bunch of web scraping. You don't need any big hardware for that. If you're going to train a model, I tried training it on my MacBook. That takes way too long. I did have to get a machine with a GPU. On the other hand, if you have a very small training data set, you might give it a try on your laptop. It's still fun. You might get as far as 10 or 20 epochs and then get a reasonable accuracy. It still is fun to play with. If you want a little bit better, getting a GPU or, I don't know, getting a cloud machine with a GPU, there's always the way to go. One miscategorization where you had the Shanghai, like, very small section of Skyline, why include that in the test set? I didn't actually make the choice myself to include this in the test set. I included all images that were classified by the previous model as being a Skyline, and so apparently it got to recognize the properties of what is a Skyline and it recognized in the background this is something that looks a bit like a Skyline. My question is, you mentioned that clean data is better than having a good model. This to me doesn't look like clean data. I'd expect a super genius classifier to figure it out, but I would have excluded this if I just saw your talk and didn't see this example. So I'm curious if I'm just wrong and there's some value in stuff like this? Well, in this case I guess it's just laziness. I didn't go through my entire test set before using it because while going through thousands of images and manually labeling them as good or bad is not my idea of fun. I think a proper data scientist must be lazy. Any more questions? Well, again, thanks.


Freeway from 1996, A Gigantic Missed Opportunity. Okay, what's up guys, it's Josh here. It's in a little movie review on a movie called Freeway from 1996. Now, this movie has so much going for it and they just throw it away. I don't get it. Might as well just start off with the pros and the cons. I'm gonna be describing stuff eventually. One of the biggest pros of this movie was the unique premise. Freeway is set, I think, in San Diego and there is a killer, like the 605 killer, and he's going up and down the 605 freeway just killing people. So he goes from LA back to San Diego, back to LA. Reese Witherspoon is this really trashy redneck kind of girl, really rough trailer park family. She ends up having a really bad day, runs off, has car trouble and she ends up getting picked up by this 605 killer who happens to be Kiefer Sutherland from 24 or the Lost Boys. I felt that Reese Witherspoon and Kiefer Sutherland had a really good back and forth. I really liked pretty much all of their scenes. I think their chemistry was good. Reese Witherspoon has like a boyfriend in here. I liked the guy's attitude and I like Reese Witherspoon's attitude. So I liked them as a couple. I just wish we had a little bit more time. So the ending was solid, better than other parts of the movie and so I'll give it that. This movie attempts to have its own style and I appreciate that. And that's just another thing that makes me so frustrated that they missed this opportunity. The movie attempts to have its own edgy style and I appreciate that. It probably nails, I don't know, maybe half the stuff. All right, guys, let me jump into my mixed aspects and a mixed aspect is I feel like it's much more of a girl dominant movie than it lets on to be.  And it's not a bad thing. I mean, everyone likes what they like. I mean, I would like a guy's movie but I just felt like it was much, much, much more of a girl's movie by the end because Reese Witherspoon at one point has to go into jail. There's kind of like this feminine camaraderie all the time. And so I just kind of saw it a little bit. It was like a goofy girls movie, a little bit, like not a hundred percent, but a little bit. And that's why I put it in mixed because it's not a bad thing. All right, guys, let's jump into the cons of this movie. And the cons is they don't explore the main idea. What we wanna see is Reese Witherspoon trailer trash against this 605 killer. We want a couple back and forths. We want just a lot of them. That's what I wanna see the most of this movie. So there's together for about 22 minutes total but this guy doesn't reveal that he's crazy for a little while. From the time that they're in the car and he reveals himself as crazy to the time that the scene is wrapped up and we're moving on to something else in this movie. That's 10 minutes. So we got 10 minutes of it. 10 minutes. 10 minutes. 10 minutes. They could have done so much with this 605 killer. Such an interesting idea. I almost wanna remake a movie now. At one point, Kiefer slowly gets kind of mangled. He has a disfigured face. And I just don't know why they did that in this movie. So like most of the movie, he has a disfigured face. He can't really talk or talk this. And it's just like, he's trying to make an entertaining movie, right? Well, I just, he's not that entertaining that way.  He can't really show off anything. He's mangled, you know? Another thing I don't like about this movie is that it has some gross, low class scenes just for the sake of it. And it happens quite a bit. Overall, Reese Witherspoon is pretty entertaining. Most of the time she pulls it off, but there was a couple of times to where I'm like, wow, she needed some more direction on that because I think there was one time where she hit somebody and it was obviously fake. So there was like two, three, four times where I saw her doing something. And it was just like, oh, that's so not believable. But that's more the director's fault. The director should have seen it and changed things up. So I'm not really talking badly on her. But if I had to rate this movie, I'd probably rate it like a five to a 5.5 out of 10. It has so much going for it. I love the actor and actress. I like the idea. I like that it has this new vibe. I like Reese Witherspoon and her boyfriend. I like Reese Witherspoon and Keeper Sutherland, but they just completely throw it away. Like, what else could you do in this movie? Besides that, that's what the movie's about. 605 Killer, 10 minutes. Gosh, it was so close to being good and they just threw it away. Anyways, guys, if you ever seen Freeway from 1996, let me know some other good Keeper Sutherland movies. We're on the road to 50,000 subscribers and I couldn't do it without any of you guys' help. You guys are the best. Have a great day out here. Hopefully, have a great day at home. See you all in the next video. Peace.