another tutorial on Plotly using Python. So here we are in a Jupyter notebook. I'm going to execute this first cell as per usual importing my cascading style sheet so that we have a bit of a better looking notebook here. So distribution plots. Let's start off by just importing our Plotly library as per usual. I'm importing iPlock because I want to plot right inside of my notebook. And I've got to initialize this notebook mode. So let's do that. And then I'm going to import the high level graph objects as GO. So import plotly.graph underscore OBJS for objects as GO. But something new. I'm also going to import the figure factory as FF. Let's do that. Let's create a bit of data for us for working within this notebook. So I'm going to import the random module and I'm going to import numpy using the standard abbreviation NP. And I'm also going to seed the pseudo random number generator. So let's create three computer variables. I'm going to call them age, salary and binary gender. So for age we're going to do a uniform distribution. So np.random.uniform. The low must be 21. The high 75. And I want a thousand data point values in that uniform distribution and that domain from 21 through 75. Next the salary I'm taking from a normal distribution. And you see the three arguments here. LOC means the mean. Scale means the standard deviation and size is the number of values I want. So from a mean of 3,000 with a standard deviation of a thousand, I want a thousand data point values from this normal distribution. And lastly from the random module, we're just going to do random dot choices and purely to keep things easy here and easy to explain at least, we're going to stick with this binary distribution, binary values sample space for my gender variable here. So only female amount just to make things easy and a thousand of those please. I'm going to import pandas because I just want to create a data frame. And here we have the computer variable df. And I'm going to do a pandas dot data frame. And I created by key value pairs for a with a Python dictionary. So I have age as my column header. And then the age variable that we created there, salary was salary and gender with a binary gender. And I'm just going to create two sub data frames there. So if we look down the gender column only include female. And down the gender column only include male. I'm going to call those sub data frames female and male. So let's run that. And then just let's look at the first five rows. So we just call the head function a female dot head method there. And we have the first five rows, we see the age there. And then the gender column will only find females there and we find the salary column there. So you can see with these pandas data frames, they actually look like this flat spreadsheet kind of files. And let's look at the last five rows of the male. And again, just to make sure the gender column will only contain males. So let's create our first bare bones distribution plot. And the way that we're going to do that is to create a computer variable called fig. And that is going to be ff for our figure factory there dot one of the methods there is the create this plot. And it takes a couple of arguments. The first one is his data. And that's the data we want in this distribution plot. Now this this distribution plots going to look like histograms nothing other than a special kind of histogram. So we've got to give it a list to work with. And what we're going to do is take the whole data frame, go down the salary column. And we say the values in that and then to list the two list function there we call on this on the values of the salary because we just want to create this this list to work with. And you see it is there inside of the square brackets, the group labels, while we're only going to do one group here. And I'm just going to call it salary salary distribution. And as with a histogram, we have to have a bin size. And for each, we have to have its own bin size, but we only have one here. So in our list, we'll only have 200. So that might not make a lot of sense until we actually see what a distribution plot looks like. So let's run that. And there we have our distribution plot. We have the nice histogram down the bottom here. And indeed, the bin size is 200. And we also see this kernel estimate here, kernel density estimate as it tries to draw this this distribution line here. And there is our group label, we only have, we're only plotting one thing. And that's the salary distribution. So there we go. This is called the rug plot underneath. And each of these little vertical lines is actually one of our salary values. And you can see the distribution. You can also see that we took this from a normal distribution. And you can see the Gaussian type Bell shaped, at least that it attempts to take there. So let's just add a title. And we're going to do that by just using one of the ways to do it at least. And that is just to call fig layout dot update. So I've created my figure, this is above. And I'm going to update the layout. So just another way of doing it, instead of doing it via dictionary, as you've seen before, and I'm just going to add a title. And that title is just going to be salary distribution. There we go. We've got a beautiful title up above. So that's not too much fun. Let's just create two datasets. So now my his data, I'm going to make a list of those. So this is so many ways of doing things in plotly. And you might find that confusing to start off with, but it also creates a lot of power. And you can find the way that works for you.  And I'm going to pass a list of values. The first list, I'm going to take the female subterfame, the salary column, the values in that column, and then create a list of that. So the two lists there. And then same for the male, my group labels are now going to be female salary and male salary. And now I'm going to create my fig. And let's create this plot, the his data. I just passed the his data there. So I'm not saying his data equals his data, because these are just keywords, the normal standard keywords that we actually don't have to use them. And then group labels is going to be that list. And then my bin size, I want 200 and 200. So the same bin size for each, which means you can make the bin sizes different for each of those. Let's do that. I plot. And now we can see we have male salary in orange, then female salary in this blueish color. And you see the rug plot for each of those beautifully done. Let's change the colors of this. So everything exactly the same, but I'm going to bring in a new argument to my create this plot here. And colors, I'm going to do an RGB with, with the opacity here and 0.8 and 0.8 for the opacity. You can see 2020, 20. So that's going to be very dark green, 151, 151, 50. So it's sort of a middle gray color. Let's run that and have a look. And there we go. You can see the light color for male, the darker color for female there. And because we set the opacity, so you can actually see the one shine through the other. Now instead of this kernel density estimate plot here, we can actually just use the data that comes out of that, create a mean and a standard deviation, so that we can create this normal distribution as, as instead of this kernel density estimate that we see there. We again have our his data, our group labels, we create this plot, we have the his data, the group labels, the bin sizes, but now the curve type is new. It's a new argument and we're just going to set it to normal. And here's just one other way that we can update this layout or create this layout. So I'm going to call fig dot layouts instead of inverted in the quotation marks and the square brackets. I'm just calling dot layout and dot update. And I'm passing, yeah, I'm passing this dictionary to it. So key value pair, the title fitted. So just another way. It just makes it so powerful and easy to use. You can use whatever way fits you. So now we can see this normal curve that it took from the data, just doing the mean and the standard deviation so that we can draw this normal distribution here. And you can see the two values there for male and female. So in case you want to omit some things, there's three things here. That's our curve, our histogram and our rug plot. So we're going to omit a few things. So we're going to say show histogram as being false and show the rug plot also as false. Everything else, exactly the same, except that we've added an X axis inside of our update to our layout here as a key value pair, the key being X axis, the value being another dictionary and that dictionary having two key value pairs title being salary and the domain being 1000 to 5000. So we can even bring that in. And there we go. We just have these two very nice smooth curves there. So you can see with this distribution plot you can do so much and you can well imagine some data that will look beautifully if represented with these distribution plots. I'll see you in the next tutorial.


Okay. Hi, Piers. I wanted to grab you because quite a meaningful day in markets is developing the euro dollar, which I know you've been calling for parity for quite some time, number of months, actually, I was trying to pin it down, but you've been in that camp and I've been reading all about this because all the other banks obviously caught your research note or your podcast because they're all calling for euro dollar parity and it's because euro dollars trading a 102 handle. So it's looking somewhat inevitable now. Big breakdown in price, we've got dollar strength across the board, equity markets are suffering as the Americans return to market, let me just share my screen and you get a bit of a sense of what it is that I'm looking at. The DAX underperforming in the global stock indices and we'll talk a little bit about the crisis they're facing their economy minister said today that Germany is facing in the energy market, it's Lehman Brothers moment. That comes after the energy giant universe being bailed out by the German government who are having to intervene. So of course we'll talk a little bit about energy prices. Oil WCI crude has also sunk as the Americans have come back into the market, and we're trading around a 103 handle having traded 108 when Europe came in this morning so significant move. Lots of calls of recession coming back onto the table city group out with a note calling for 45 bucks by the end of next year came a day after JP were talking $380 the day before so no rest for the wicked. Why am I back from paternity leave. The Americans are back from their long, long weekend so yeah wanted to get your thoughts and perhaps we could start with the euro. Yeah, I mean it definitely feels like, you know, today, or the fifth of July 2022 it does feel already a little bit like one of those days that you'll remember for the year. We'll see if it's one of those days you'll remember for the decade by the close but I don't think necessarily it'll be too much more of a monster blowout but look it's incredibly you got some major, major moves to multi decade lows in some of the kind of headline markets that has then fed into just general sentiment. So the euro dollar is obviously the king of the FX space, and has broken. Yeah, down below. This is the lowest we've been since 2002 isn't it and actually I started trading in October 2002. So we are right now, back to the precise euro dollar exchange rate that I had when I started trading 20 years ago. Is that a good anniversary or is that. I don't know how I feel about that but why certainly, obviously 20 years we haven't had this price point. And so it's quite it's very notable right and it's not going to stop here. Yeah we definitely I mean, I've been calling parity but I think it's down it's odds, it's nailed on here and it's broken the lows that we have back in 2015 2016 which was around 105. Once that's broken. It's now right we're going to test parity. And what's happening is, it's the same old story that we've been banging on about for months right in the, you've got a big certain with this FX pair specifically, you got a big what we call, well as a divergence, right between central bank and there's a divergence between the economies and how they're functioning and how they're dealing with post COVID there's a divergence when you think about the exposure to Russia Ukraine for example so, but just on the central bank thing that's been the Fed are hiking rapidly and will continue to do so the ECB always lag and they've said they're going to hike in September. For the first time in the Fed have been hiking since March and they July in fact they've been saying they're going to move the ECB right but not and oh sorry, apologies yes that's right so they're going to make a move in July right but the closer we get to July. Well, are they going to make a move, because I think people are starting to think it's already too late to start hiking, because now the narrative has moved on beyond the inflation crisis. Yeah, and the impact of course of inflation, like consumer readings that we're getting from a confidence perspective we had the European syntax and economic index out, and that showed investor morale in the Eurozone is that basically it's lowest level since right in the depth of the COVID initial crisis of lockdown and obviously the context being 8.6% in June record inflation in Eurozone as you said. And I think people are now looking at now focused investors that is squarely on the economic damage that a this, well in Europe, the economic damage this inflation spike is going to have and it's going to create a recession and the recession is coming and it's, you know the expectations on the timing of that are getting closer and closer and closer. And so it's like well look the central bank. I mean worst case, well, best case, the central bank can't hike, and we have a recession, and then inflation drops because of the dampening of demand that comes with the recession. And now best case scenario, worst middle ground is like, actually the central bank do have to hike, because inflation stays high. That just makes the recession worse, worse, worse, worse case, you get a JP Morgan scenario where there's a full blown monster energy crisis oil goes to the moon, and obviously just creates exacerbates the whole thing I think we're back to the euro dollar specifically. The Fed are hiking they're already hiking they've hikes three times and each time it's getting a larger hike 25 basis points 50 basis points 75 basis points, and they're going to hike again. And that's been driving dollar strength, and the dollar is strengthening against other currencies particularly where there's uncertainty whether their central banks are going to be able to hike at all. And the dollar is strengthened against the euro it's even strengthened even more against the yen. And these are at multi decade levels it's strengthening against the pan the pans down through the one 19 handle that's broken the Brexit low. It's a very brief blip down to 115 that happened off COVID. But otherwise, we're a 40 year low for sterling against the dollar so the dollar is super strong against everything because the Fed super hawkish, the US are less exposed to the Russia Ukraine situation their economies more resilient is recovered better. And the dollar is king. So do you think a trigger point to some extent is the fact that these things do do often tend to happen as well when there's a bank holiday and you get this return to markets but in the interim period, particularly over the weekend there was g seven discussions about a Russian price cap. And I think you and I have talked about this before. It's not that I think that that is even an avenue that they can go down and actually execute on because the retaliation effect would be so severe on the lights of say Germany, highly dependent of course in the engine room with the eurozone on that gas flow, but just the idea of perhaps a little bit of repricing of the associated risk of supply disruption has the market become distracted by the top level headline inflation figure. And kind of everyone was talking about peak peak Russian Ukraine, but this really is not quite over it. Right. Yeah, I think it's always hard to pin it right on a very specific thing I think it's a collection of all of these things together I think you're right, having a holiday weekend, chilling out and then you're back and it's the new it's the second half of the year. I do think the rally in stocks. What was it the week beginning the 20th of June was again a bit of a kind of tangent distraction stocks went up because a quarter and rebalancing more than anything else and I think that, again that probably got misinterpreted as maybe we're at the same level, but we're not. And, you know, I think these big moves on the FX space has now made people realize why we're at multi decade levels here and then people start looking around this feeds into other markets oil down over 5% today that's off demand side risk now as we look ahead, a possible recession, even a massive sell off in oil today and that's down yeah back to kind of looking to test that mid June lows so yeah it's just sentiment it's contagious it kind of starts in one place like a headline euro dollar move breaking to a couple of decade lows and then that just feeds through to other assets. And then all of a sudden, you've got this big move and then it's a bandwagon right everyone's jumping on and reacting people are selling now just because everyone else is selling. You know, it becomes quite behavioral. So it's definitely one of those days. And then within all of this city were out with a note which has been in circulation in the last kind of 48 hours, and they were talking about the fact that crude oil could collapse to 65 bucks by the end of the year. And in fact slumped to 45 bucks by the end of 2023 if demand crimping inflation hits as Bloomberg were kind of suggesting this morning now a couple things there. Well for one what's your initial feeling on that. My feeling is come on. If they're right, then we're all in trouble. There's my feeling in that the recession is going to be the worst case scenario. Right. Yeah, I mean this is one of the things I was talking about with our interns this morning was that the devils in the details whenever you read these bank reports because more often or not you're on the second hand, i.e via a financial news outlet rather than the actual banks direct distribution list. So you're seeing the full report you're seeing whatever it is that a news agency wants to spin. Yeah, and obviously we know they have agendas to generate clicks and so forth but to give you a bit of color, the outlook from city is based on the absence of any intervention by OPEC plus producers and that for me is where this argument ends. I can't see that ever happening I don't know why that would ever I can't think of a scenario where they wouldn't want to step in, at least verbally intervene to stop that from happening. And then actually when I think about the statement that if a demand crimping recession hits the actual macro view the house view of city is not a recession. So as sexy as it is, it's actually not even their base assumption so yeah for sure I think, look, you know this is a domino effect and a lot of those dominoes that need to fall in exactly the right place for this to materialize so is this possible. Yeah, it is possible, is it likely no I don't think it is likely. Yeah. So, agree. Just just a word to the wise of how to interpret that if you're a student you're not used to looking at that type of head that type of headlines. But look, that was it pierce I just wanted to jump on get a quick take from you I know I know you're busy so we'll leave it there. But yeah, feel free. If you're watching this on YouTube to like and subscribe to the channel super appreciate that, and I'll be back on my normal macro week ahead outlooks as of next week. Not for a short while but back in business so yeah thanks Pierce and see everyone next time.


when I'm in bed at night I could swear I feel my heart stop for a few seconds and restart with a thump should I be worried. Okay well at night something interesting happens either there's silence so you are a little bit more aware of sounds and sensations. So palpitations which is the feeling of irregular heartbeats or pounding heartbeats are more common at night not necessarily because they happen at night but because you're more aware of them. Palpitations can be many many things causing them. The thing that you seem to be describing stop for a few seconds is most likely ectopic beats or premature ventricular or atrial contractions the common word for this skipped beats which the majority of the time are benign but we do some tests to make sure they are not of the not benign kind and that there's nothing else going on.


Russia killed French fighters in Ukraine. Over 60 foreign fighters in Ukrainian service, most of them French, have been eliminated in a precision strike on a building in Kharkov, the Russian Defence Ministry. Kharkov is a major Ukrainian military stronghold in the East and has been the launching pad for rocket attacks on Russian territory, including the December 30th massacre in Belgorod that killed 25 and injured more than 100. On the evening of January 16, the armed forces of the Russian Federation carried out a high precision strike on the temporary assembly point of foreign fighters in the city of Kharkov, the majority of whom were French mercenaries. The Ministry said, as a result of the strike, the building in which the mercenaries were stationed was completely destroyed. More than 60 militants were killed while over 20 were taken to hospitals, the Russian military added. The strike came on the same day that French President Emmanuel Macron announced Paris could not allow Russia to win and pledged to send 40 scalp cruise missiles and hundreds of bombs to Kiev. Thousands of foreign fighters flocked to Ukraine at the start of hostilities with Russia. In 2022.


Now, there's a possibility, according to the Natural Oil and Gas Suppliers Association, hinting of an increase in the price of diesel in the country. The national president of Nogasa, Bennett Corey, said, if you go around now, you will see that about 75% of filling stations in Nigeria have gone out of business, and there is no diesel to take fuel to their stations, all of them are going down. That is not that fuel is not there, but the cost of bringing it to the station is too high. We know that crisis between Ukraine and Russia has contributed badly, but the government has to do something fast. Otherwise, we're going to buy diesel in the next two weeks at 1,000 to 1,500 nair per liter. As far as I'm concerned, nothing for now. The only way out is if you want to know is that the government should increase the price of fuel, a little to reduce the money spent on the PMS subsidy. I know Nigerians will not be happy to hear this, but this is the only solution. They should increase the price of fuel a little so that the savings will enable the central bank of Nigeria to have enough foreign exchange, according to Corey, if the government could bring down the rate at which it's spending foreign exchange on PMS import, it would help all the businessmen who import diesel to bring in products at low prices. We do have Chief John Keke Ocha, Ipma National Secretary joining us this morning. Let's go to him. Have you joined us and be part of the conversation? Thank you. Thank you. All right. Chief John Keke Ocha. Can you quickly tell us what exactly the situation is with diesel right now in Nigeria? The situation is just very complicated. It is just a reflection of our homelessness in the Nigerian society. It is just one more for Nigerians to ensure that the refugees are working. And because the refugees are not working, we don't have any option than to import products. And business has to deal with the dynamics of demand and supply. Because of the Ukraine-European crisis, it has affected globally. But for countries that do production in their area, this dynamic does not play much. But because we are dependent on the population, even when we have the panellists that are not working, we don't have anything other than to shape the crisis as it is. Absolutely all of us are aware that the Nigerians have lost much value. And of course, if we are going to import goods, we have to import it at the international market. And this has to do with the cost of the dollar, just like the Nigerians. People of all that are aware that it is very, very difficult. So we don't have any choice because this is the situation we have created for ourselves. If we had our panellists working, the crisis in the Ukraine-Russia program, we wouldn't have affected us. And all of us know that the digital has been regulated. By the regulation, it means you have the right to break your digital at any time you can and sell at any price. But because we are not producing, we don't have any option than to import. And this means we must take the means we have to take. Yes, it means strongly believe that in the short term, digital will break up to one thousand or more. But we have a new choice. We don't have a new choice because we didn't plan ourselves properly. We are working this crisis today. So we don't have any option that we take with headlong. We take God's place as the Ukraine-Russia work comes to an end. And the situation is normalised. But however, the end point is that Nigerians must work hard. And ensure that our panellists are working. The Ukraine-Russia work has come. If we possibly come and go, another issue might arise. But if only we attract the same and we'll come back to the same situation. So the best bet is our paradise must work. That's the situation. I'd also like you to, you know, further explain if the situation that we have at hand instead of having businessmen, I mean those who are importing diesel because we know that there's no subsidy for diesel. And this persons who are importing this product, asking that the government should subsidise it because you understand at the end of it you would have the masses paying seriously for the brunt of it. So could you also be the concern of some business persons who are thinking that, hey, government should bear the brunt because if you look at it, the cost of this is also a global concern. And it's not just limited to Nigeria as well. So why do you have the marketers in the middle of this? The market has not much to do. In possession of products at this time, especially it has to do with diesel. And because most of the product has to be regulated anybody can import diesel into the country. So it's not a bad market. Yes, it is not easy for the government to stay there ahead to subsidise diesel. Because as we speak, fuel is being subsidised. Nobody talks about curating. Nobody talks about regulation here. Nobody talks about the modern ancillary product that come out from the final. We are clamouring the cost of diesel because both of them just trade and come to this value. A lot of them are folding up. Despite the situation, the best bet of this company is you want to wake up and do the rituals. Market has not much to do because the only source of diesel comes from the government. So that's the situation. A situation where many public stations are closed up. If you buy diesel and run your stations for a day, what you make is not commensurate with the cost of running the stations. That's how we talk about the first crisis. Many stations are closed because they can no longer assist them because of the cost of diesel. It is a chain reaction and it will continue to go like that. It's not a marketer's problem. It's the consequence of slandlessness. It's not a marketer's problem. Are you also saying that it's not also a concern that diesel should be subsidised? It's not that that's what marketers are asking for. Away from that, you also have the natural oil and gas suppliers association president saying that the only way to solve this issue of not having to buy diesel at the price that it's been put out for a thousand Naira, 2,500 Naira per litre is that the government should increase the price of fuel per litre. That would help. How does this solve the problem? It does not immediately help the situation. It does not immediately help the situation. Increasing the price of fuel goes for that increase the price of Nigerian oil and increase the content of those companies and the industries that use diesel equally. Everything boils down to increasing the debt. If you're not sure, you can make up the concept. We are too pleased to do the initial and the value chains are becoming very bad. That is why when we said we should be regulated. Regulation cannot function if the farmers are not working. If the farmers are working looking at production, these figures can be equally important. There's on dynamics of demand and supply for those prices can come down. But the situation where you go and be regulated and you don't produce definitely you must take good care of the prices. It's negligible. Let's even go further with this argument. You have the president like I've mentioned. He's saying that the increase in the price of fuel, the lethal, would also help in enabling the central bank of Nigeria have enough foreign exchange. Because the issue right now is a foreign exchange concern. If the government increases the pump price of petrol, there's an increase in fuel price a bit. It would help in savings of foreign exchange for the central bank. It would also make it easy for products to actually come in. You're saying that that doesn't solve the problem it would cost more hardship. I'm wondering why there's no unism because the natural oil and gas supply association president is thinking differently and you are also thinking differently. How do we help us understand the situation better? When you say you should increase the price of fuel in order to as such depend on the profession of business. It's still one and ten times the same situation. If you increase the price of fuel you are making the people to suffer more. Absolutely. Nigeria depends on fuel for each movement. Nigeria depends on fuel for the household business. If you go and increase the price of fuel you have to further increase the price of Nigeria's existence. Even at the price of a foreign exchange people are shouting. Go and increase the price of fuel further. You are cutting for prices. Yes, we accept the fact that the digital cost is very high. But if you check the percentage of Nigeria that none of the digital is affected. Absolutely the number of people affected by the high cost of fuel is quite very high. Go and increase it further and you see that the economy is crashing. And the suffering of the people will increase. We must do the research. We must ensure that we are looking forward and see how our economy will work. That is the best way to implement the problem. But do you think that having our refineries functional up until now we are talking about how long have we gained independence and we don't really have a refinery that is able to help us refine our products. That is something to import. How can that be? We are talking about in the next two weeks that people would have to buy this product. A lot of businesses are very dependent. Apart from the filling stations themselves you have this business. Several businesses are dependent on diesel. How much of this diesel can these businesses afford this rate looking at all of that? It is going to be a catastrophe. But the concern here that has been raised is that foreign exchange is the problem. Foreign ending is the problem. That is why the proposition is saying that government could bring down the rate at which it spends foreign exchange or spending on foreign exchange on PMS imports. If we would do that it would help all the businessmen import diesel to bring its product at a lower price. That is why I brought the question to the fact that businessmen are not willing to take the brunt of how the economy is turning down and then they are pushing it back to the government to push it back to the citizens and then the people would suffer. That is on the one hand. On the other hand, do you think foreign exchange is also a problem right now? Absolutely. Which of them? Absolutely. The foreign exchange is quite very high. Our Nigeria is losing value every day. What can we do? If we stop the economy, it is not your plan. Our dependence on oil has been very high. Oil becomes one of the primary source of income of this country. And therefore, if anything affects oil, it affects the economy negatively.  So, if we don't look inward and see how we can make our economy improved, this has been the dynamic of the international economy, this is the time we will all lose to the accord. You know to our vets this situation right now. There is no immediate, there is no fire brigade approach to solving this problem. There is no fire brigade approach to solving this problem. Because these kind of solutions are something we would have expected long before now. But we assume it before our notes. So, definitely Nigerians are facing it. That is why when we want to look at the government, we must look at government that has taken us. That knows what it takes to harness the economy, think inward, and know how to ensure that immediate crisis like this does not arrive. But if we don't go anywhere, we will always have this kind of crisis. That's all right. Well, thank you so much, Chief John Kinkautra for being part of the breakfast this morning and sharing your thoughts and giving more insight to the possibility and the issues surrounding diesel, scarcity and the increase in its price. Thank you so much. We wish you the very best as you go about the cost of your day. Thank you very much. All right, so Chief John Kinkautra is the Ipman National Secretary. Once again, thank you. That's the size of our conversation this morning. On the breakfast, if you missed out on any part of it, it will be all right to be part of the conversation via Twitter, Facebook, Instagram, and do subscribe to our YouTube channel Plus TV Africa and Plus TV Africa Lifestyle. I am Messi Hohu. The news comes up at 9 o'clock, still with us.


The Nigeria Libor Congress analysis says July 26 and 27 would be national days of protests across the country to force the federal government and the academic staff union of universities ASU to resolve their issues and suspend the lingering strike. Record that ASU on February the 14, 2020, a short down, public universities over the inability of the federal government to implement agreements the two parties entered into in previous years. ASU and other unions are demanding funding, revitalization of universities, earned allowances implementation of the university transparency and accountability solution new tasks came as well as promotion areas. Record that the MOC had given the federal government a 21-day ultimatum to resolve the lingering issues. The ultimatum however elapsed without tangible moves to end the strike. Following the exploration of the ultimatum, the NOC in a statement issued by its president Ayub Awaba said the solidarity protest would take place in all the 36 states and the FCT.


What's going on everybody? Got Kyle here with Layton Sports Cards and we are ripping two boxes um or four boxes for Jeffrey H got two boxes Bowman Chrome Hobby and two boxes of choice. Good luck here Jeffrey. Let's see what we got. E! E! There's the fins. There's the fins. Good, good. How you doing? Is that, is that Chris? Is that Chris? All right, good luck here Jeffrey. We'll start with the Bowman Chrome Hobby. I always forget your um your YouTube name. Luck, good luck. Dolphin Scorn. Yeah. Jalen Waddle. Jalen Waddle. Best celebration in the league. Yeah, let's go. I sell you in the league. I can't even do it. That was close, that was close. I like it Jake, I like it. They'd be my second team though. Yeah. I guess I could probably be about that and get behind them. Start off with a Machado. This one is Fuchsia. It's going to be Fuchsia, Shimmer, Victor, Asturus to 199. Axioplas. I think we only got the Ravens game on but it'll work. Hope everybody's having a good Sunday. I hope you all have success in your fantasy line-ups. There's a Deshaun Knowles. That one is the 499 for Great Britain. I've seen that one yet. Munoz. There's a Mason Hour for Invicta for the race. Invicta Insert. It's Hour Hour. Hour Hour. Hour Hour. Hour Outage. There's a Refractor came to the league, Cheerio. First Auto is going to be Leonardo Bernal. That is Cardinals, first Bowman base. Guanipa and Maiaia. Yeah. I think it's just like a lot of inconsistencies so far. It's hard to just say like, hey they beat them so they should beat them like that kind of thing so far. 499 we got Rizzo and Yoendri Vargas. I'm going to say the Eagles aren't that bad because the Bucks almost beat them too. So we're not almost but Bucks competed enough. First Restatuyo. I think the Eagles are really good because they're only lost. So Zorro Montez. There's a first Galiz. Come on, Jeffrey. See some fire for you, sir. Got some nice boxes earlier on. Let's keep it going. Speckle is the 299 Christian Vecchero for the Nationals. Luciano. Another Speckle should be Otto this time. It is going to be Dario Barrero to 299. Speckle, first Bowman, Otto White Sox. Ready? There's one. Box number two. Box number two. Good luck, Mr. Jeffrey. We'll get two choice going after these hobbies. And after this guys I got Mr. Heinrich. Heinrich and then Jordan. Not a ton in the queue at the moment if you guys want to get something going. It'll be about 20, 25 minutes or so before we get it going. Who's number 15? I was just thinking that. I don't have any idea. I think Bateman's 7. I don't know. I don't know who that is. Sam. Sam. Sam. Who's 15? Who's this Raven? There's a purple shimmer to Brady House to 299. Brady House into a Brady home. Yeah, I don't know who that was. I thought it was Hollywood Browner. He's got it again. Hollywood Browner is on. Oh, it's Agilore. It's Agilore. Montgomery 42 yard touchdown. Let's go. Come on, man. There's a Cezuki blue array wave to 199. That's huge. And a Ritter rushing touchdown. Let's go. That's huge for my friends. It's huge. Monty's a beast, man. He's a beast. There's a Wampin, Choe, and Vic to insert. He is a beast. You're the same guy I was playing last week. Yeah, same as Sean. He played in the games I was here with him and he was not happy. I learned my lesson. Sean was not happy. Corbin Carroll, I came to the league. Corbin is a beast. I learned my lesson. It's a R-Yes first. Corbin Carroll is a doll. It's a home-raiser. Yeah, he did. There's a first. Nice one there. Samuel Bassio. That'll work. First woman base auto for the Orioles. Just got autos in here. Nice one there. Those are our Montez. Let's go, Chris. We like the Monty updates now that I don't have a Tamir Gibbs playing. To 99, we got Osvaldo Cabrera, rookie Yankees. Let's go. Let's go. Oh, are they? I just saw the... Panthers had a little drive going. They had a planet, though, I think. Gus Bus. Gus Bus pulling in the station. iconic Altuve, Camilo Diaz. Refractor is Ronald Cunha at a 499. Second one of these today under Venezuela. Last pack of our hobby. Good luck, Mr. Jeffrey. It's going to be Refractor, first woman auto for the Rays. It's going to be Brett Wisely. Brett Wisely to 499, first woman auto. JC Young and Cheerio. All righty there, Jeffrey. That'll do it for the hobby. Now we got two Bowman Chrome Choice. Good luck, my friend. And after this, I got Heinrich, then Jordan. Appreciate everybody. And Mr. Tom grabbing some orders. Oh, was it Justice Hill? I thought Gus was 35. I think we're behind you guys. I think we're a good bit behind you guys. The Justice Hill number 15. We have a lot of buffering going on, so I think we've gotten a good bit behind. This one is a first Jacob Melton for the Astros. I saw that, Shawn. Saw that waddle. Nice one there, Jacob Melton, first woman. Yeah, I know. I saw it a second ago. I saw it on the back of the jersey. He's catching them unlike Aguilar. He was a biking last year. He was a biking last year, I believe. I think so. And a 250 first woman auto is Junior Garcia for the Dodgers. Dodgers purple first woman. And box number two. Yeah, it was who I was talking about. It was Gus Bus before that touchdown where you ran it. Just saw the touchdown, so we are a good bit behind. We only have that game on though, so feel free to let us know some other scores. Feel free. Yeah, if you have any updates on David Montgomery, feel free to let us know. Anyone on Jake's team, he is more than happy to have updates on. Only go ahead. More than happy. There's a Dario Laverde. That's going to be first woman for the Angels. First woman base auto. Gus Montgomery pits. We've got another Dario. This time it's Dario Barrero. First woman base for the White Sox. There we go, Jeffrey. It's Felden Seliston on the refractor. First woman auto to $4.99. There we go, Jeffrey. We'll take it. Had a Felden earlier. Had a Solisado earlier. Very nice, my man. We will take it. Nice one there. We'll mag that up for you on the refractor Felden. Alrighty there, Jeffrey. That will do it for your four boxes. Two bone chrome choice and two hobby. Thank you as always, my friend.


Last time we had seen that a matrix can be written basically let me draw here the matrix so we had several Roles right and then we multiply usually decent by one one column all right And so whenever we multiply these guys you can see these and as two types two different equivalent types of Representation, okay, can you see right? You don't is it legible? Can you okay? So you can see basically as the output of this product has been a sequence of Like the first row times these column vector and then again I'm just okay shrinking them. They should be at the same size right because otherwise you can't multiply them So you have this one and so on right until the last one and This is gonna be my final vector and we have seen that each of these Buddies here, what are these talk to me please? There's a scalar products right, but what do they represent? What is it? How can we call it? What's another name for calling a scalar product? I? Show you last time a demonstration with some trigonometry trigonometry right what is it? So this is all the projection if you talk about geometry or you can think about this as an unnormalized cosine Value right and so this one is gonna be my projection basically of one Kernel or my input signal onto the kernel right so these are projections Projection All right, and so then there was also a another interpretation of these like there is another way of seeing this Which was what basically we had the first column of the matrix a multiply it by the first element of the X Of these of this vector right so back the element number one then you had a second column times the second Element of the X vector until you get to the last column right Times the last n element right suppose that this is long n and this is m times n Right so the height again is gonna be the dimension towards we shoot to and the width of a matrix is dimension where we coming from Second part was the following so we said instead of using these metrics here instead of since we are doing Convolutions because we'd like to exploit sparsity a stationarity and Compositionality of the data we still use the same Metrics here perhaps Right we use the same guy here, but then those kernels We are gonna be using them over and over again the same current across the whole signal right so in this case The width of this matrix is no longer be it's no longer and as it was here There's gonna be k which is gonna be the kernel size right so here I'm gonna be drawing my thinner matrix and This one is gonna be k lower case k and the height maybe we can still call it and okay All right, so let's say here. I have several kernels for example, I may have my Sion kernel then I may have my I don't know green. Let's let me change. Let's put pink So you have this one and then you may have a green one, right? and so on So how do we use these kernels right now? So we basically can use these kernels by stacking them and shifting them a little bit, right?  This is just recap and then you have this one for the blue color Then you do magic here and just do copy Copy and I do paste And then you can also do color see fantastic magic and we have pink one And then you have the last one, right? Can I do the same copy? Yes, I can do fantastic Sorry, you cannot do copy and paste on the paper All right color and The last one light green Okay, all right, so we just duplicate how many matrices do we have now? How many layers? No, don't count the number like the letters on the on the screen and K or M. What is it? What is K? Decide You're just guessing you shouldn't be guessing you should tell me the correct answer, right? Think about this as a job interview I'm training you So how many maps we have? And right so this one here are as many as my and which is the number of rows of this initial Thing over here, right? All right, so what is instead the? Width of this little kernel here. Okay, right? Okay What is the height of this matrix? What is the height of the matrix? Are you sure? Try again. I can't hear and minus K That's one okay, and the final What is the output of this thing right so the output is gonna be one vector which is gonna be of height the same right and minus K plus one and then It should be correct Yeah, but then how many what is the thickness of this final vector and right so this stuff here goes as thick as M right So this is where we left last time, right? But then someone asked me now then I realized so we have here as many as the different colors, right? So for example in this case if I just draw To make sure we understand what's going on. You had the first Thing here, and you had a second one here, and I had the third one right in this case All right, so last time they asked me if someone asked me at the end of class So how do we do convolution when we end up in this? Situation over here because here we assume that my Curners are just you know, whatever K long let's say three long, but then they are just one little Vector right and so someone told me no then What do you do from here? Like how do we keep going because now we have a thickness before we started with a Something here this vector which had just n elements, right? Are you following so far? I'm going faster because we already seen these things. I'm just reviewing But are you are you with me until now? Yes, no Yes, okay fantastic. So let's see how we actually keep going So the thing I just show you right now is actually assuming that we start with that long vector which was of height what was the height and Right, but in this case also this one means that we have something that looks like this and So you have basically here This is one. This is also one. So we only have a Monophonic signal for example, and this was and the height, right? All right, so let's assume now we are using a stereophonic system. So what is going to be my? Domain here. So, you know my x can be thought as a function that goes from the domain to the our Number of channels. So what is this guy here? Yeah, x is one dimension and somewhere. So what is this omega? We have seen this slide the last slide of Tuesday lesson, right? Second Omega is not set of real numbers. No someone else tries We are using computers It's timeline. Yes, and how many samples you you can you have one sample number sample number two sample number three So you have basically a subset of the natural Space, right? So this one is going to be something like zero one two so on set Which is going to be subset of and right? So it's not our are is going to be if you have time continuous domain What do you see in this case in the case I just show you So far, what do you see in this case? Now number of Input channels because this is gonna be my x right. This is my input. So in this case we show So far in this case here We were just using one. So it means we have a monophonic Audio, let's have now the assumption make the assumption that this guy instead is gonna be two such that you're gonna be talking about stereo phonic Signal right, okay, so let's see how this stuff changes. So in this case my Let me think Yeah, so how do I draw I'm gonna just draw right complain if you don't follow are you following so far? Yes, because I watch my tablet. I don't see you right? So you should be complaining if something doesn't make sense, right? Otherwise becomes boring if I'm waiting and watching you all the time, right? Yes. No Yes, okay. I'm boring. Thank you. All right. So We have here this signal, right? And then now we have some thickness in this case. What is the thickness of this guy see right? So in this case this one is going to be see and in the case of the stereo phonic signal You're gonna just have two channels left and right and this one keeps going down, right? All right So our kernels if I'd like to perform a convolution over this signal, right? So you have different Same policy, right? And so on right if I'd like to perform a convolution 1d convolution I'm not talking about 2d convolution, right? Because they are still using a domain which is Here number one, right? So this is actually important. So if I ask you what type of signal This is you're gonna be basically you had to look at this number over here, right? So we are talking about one dimensional signal Which is one dimensional domain, right? 1d domain Okay, so we are still using a 1d signal, but in this case it has, you know, you have two values per point So what kind of kernels are we gonna be using? So I'm gonna just draw it In this case, we're gonna be using something similar like this. So I'm gonna be drawing this guy Let's say I have K here, which is gonna be my width of the kernel But in this case, I'm gonna be also have some thickness in this case here, right? So basically you apply this thing here, okay, and Then you can go second line and third line and so on, right? So you may still have like here M kernels, but in this case you also have some Thickness which has to match The other thickness, right? So this thickness here has to match the thickness of the input size So let me show you how to apply the convolution So you're gonna get one of these slices here and then you're gonna be applying this over Here and then you simply go down this way All right, so whenever you apply this You perform this guy here inner product With this over here what you get? It's actually a one by one is a scalar So whenever I use this orange thingy here on the left hand side and I do a dot product Scalar product with this one. I just get a scalar. So this is actually my convolution in 1d The convolution in 1d means that it goes down this way and only in one way. That's why it's called 1d But I will multiply each element of this mask Times this guy here, and then you have second row and This guy here, okay? You say you multiply all of them you sum all of them and then you get your first Output here, okay, so whenever I make this multiplication. I get my first output here Then I keep sliding this kernel down and then you're gonna get the second output third out fourth and so on until you Go down at the end Then what happens then happens that I'm gonna be picking up Different kernel. I'm gonna beg it. Let's say I get the third one. Okay. Let's get the second one. I get the second one And I perform the same operation.  Okay, until you go with the last one Which is gonna be the mth right the mth kernel which is gonna be going down this way you get the last one here, okay? Yes, no confusing clearing. So this was the question I got at the end of the class Yeah Tuesday. Yeah Because it's a dot product of all those values between so basically you do the projection of this part of the signal Onto this kernel So you'd like to see what is the Contribution like what is the alignment of this part of the signal onto this specific subspace? Okay, this is how convolution works when you have multiple channels so far I show you just with single channel now we have multiple channels Okay, so, oh, yeah, yeah in one second One and one one at the top one at the bottom So you actually lose the first row here and you lose the last row here So at the end in this case the output is gonna be n minus three plus one So you lose two one on top. Okay in this case you lose two at the bottom If you actually do a center you center the convolution usually you lose one at the beginning one at the end Every time you perform a convolution you lose the number of the dimension of the kernel minus one You can try if you put your hand like this you have a kernel of three you get the first one here that is matching Then you switch one and then you switch to right so okay with five that let's have a kernel of two Right, so you have your signal of five you have your kernel with two you have one two three and four So you started with five You end up with four because you use a kernel size of two if you use a kernel size of three you get one two and Three so you lost two if you use a kernel size of three. Okay, so you can always try to do this All right, so I'm gonna show you now the dimensions of these kernels and the outputs with pie torch Okay, yes, no all right cool Okay disaster Can you see anything? Yes, right? Let me zoom a little bit more Okay, so right now we can go we do conda activate Activate and then we have Activate yeah PDL right by torch deep learning. So here we can just run ipython If I press control l I clear the screen and we can do import torch Then I can do from torch import and then So now we can see for example comv. Let's have my convolutional convolutional layer is gonna be equal to and then comv and Then I can keep going until I get this one Let's say let's say I have no idea how to use this function I just put a question mark and press enter and I'm gonna see here now the documentation, okay So in this case you're gonna have the first item is going to be the input channel Then I have the output channels, then I have the kernel size All right, so for example, we're gonna be putting here Input channels we have a stereo signal. So we put two channels The number of kernels we said that was m and let's say we have 16 kernels. So this is the number of Kernels I'm gonna be using and then let's have a kernel size of what the same I use here So let's have K or the the kernel size equal three. Okay, and so here I'm gonna define my first convolutional object So if I print this one comv, you're gonna see we have a convolution a 2d convol sorry one one deconvolution made that Okay, so we have a one deconvolution which is going from two channels so a stereophonic to a 16 channels means I use 16 kernels This kernel size is three and then the stride is also one Okay, so in this case, I'm gonna be checking what is gonna be my convolutional weights What is the size of the weights? How many weights do we have how many how many planes do we have for the weights? 16 right so we have 16 weights what is the Length of the of the of the of the kernel Okay, oh What is this two? Channels right so I have 16 of these kernels which have thickness 2 and then length of 3 okay, makes sense right because you're gonna be applying each of these 16 across the whole signal so Let's have my signal now. You're gonna be is gonna be equal torch dot rend Rand and all size. I don't know. Let's say 64 I also have to say I have a batch of size one so I have a batch of size one So I just have one signal and then this is gonna be 64. How many channels we said this has To right so I have one signal one example which has two channels and has 64 samples So this is my X Hold on what is the convolutional bias size It's 16 right because you have one bias per plane per per weight. Okay, so what's gonna be now my convolution of X The output hello, so I'm gonna still have one sample right how many channels 16 what is gonna be the length of the signal? Okay, that's six Exito okay fantastic. All right, so what if I'm gonna be using a convolution with Size of the kernel 5 What do I get now? Yeah to shout I can't hear you 60 okay, you're following so fantastic. Okay, so let's try now instead to Use a hyperspectral image with a 2d convolution, okay So I'm gonna be calling now my convolution here. It's going to be my in this case is correct. It's going to be a com Com 2d again, I don't know how to use it So I put a question mark and then I have here input channel output channel kernel size Stride and padding Okay, so I'm gonna be putting input stride input channel So it's a hyperspectral image with 20 planes. So what's gonna be the input in this case? 20 right because you have you start from 20 spectral bands Then we're gonna be inputting the output number of channels. Let's say we're gonna be using again 16 in this case I'm gonna be inputting the kernel size Since I'm planning to use okay. Let's actually define Let's actually define my signal first so my x is gonna be a torch Dot rend and let's say one sample with 20 channels of height For example, I guess 60 128 well, hold on 64 and then with 128, okay So this is gonna be my My input my input data. Okay, so my convolution now it can be something like this So I have 20 channels for input 16 are my kernels I'm gonna be using then again, I'm gonna be specifying the Kernel size in this case. Let's use something that is like Three times five. Okay, so what is gonna be the output? What are the kernel size? anyone Yes, no, what? No 20 channels is the channels of the input data, right? So you have how many kernels here? 16 right there you go You have 16 kernels which have 20 channels such that they can lay over the input three by five, right? Thinny like a short like yeah short but large Okay, so what is gonna be my convolution on x sized? 116 6224 Let's say I'd like to actually add Back the I'd like to have the same dimensionality. I can add some padding, right? So here there's gonna be the stride I'm gonna have a stride of one again if you don't remember the The syntax you can just put the question mark and figure out and then how much stride should I add now? How much stride in the y direction? Sorry, yes, how much padding should I add in the y direction? One because it's gonna be one on top one on the bottom, but then then on the x direction Okay, you're following fantastic. And so now if I just run this one you want to get the initial size Okay, so now you have both 1d and 2d. The point is that what is the dimension of a? convolutional kernel Ensemble for 2d dimensional signal Again, I repeat what is the dimensionality of the collection of kernels used for two-dimensional data? again For right so for is gonna be the number of dimensions that are Required to store the collection of kernels when you perform 2d convolutions The one is gonna be destroyed. So if you Don't know how this works. You just put a question mark.  So that's our expectation if you send an input vector, which is gonna be input tensor Which has dimension 3 is gonna be breaking and complaining Okay, so We have still some time to go in the second part all right second part is gonna be So you've been computing some derivatives right for the first homework, right? So the following homework maybe you have to do You have to compute this one Okay You're supposed to be laughing.  So how somehow So they had to still do these things right? It's kind of crazy Nevertheless, we can use pi torch to have automatic Computation of these gradients so we can go and check out how these automated gradient Works, okay. All right, so All right, so we are gonna be going now to the notebook number three, which is the Yeah, invisible. Let me see if I can highlight it now. It's even worse. Okay number three auto grad tutorial, okay? Let me go full screen Okay, so Auto grad tutorial was gonna be here here. I just create my tensor Which has as well this require gradients equal true in this case? I mean asking torch, please track all the gradient computations Did the computation over the tensor such that we can perform? Computation of partial derivatives, okay? In this case, I'm gonna have my y is going to be so x is simply gonna be one two three four The y is gonna be x subtracted number two, okay? All right, so now we can notice that there is this grad fn Grad fn and fn function here.  Oh, this is a sub backward What is it? Meaning that the y has been generated by a module which performs the subtraction between x and 2 right so you have x minus 2 therefore if you check who generated y well, there is a sub a Subtraction module, okay? So what's gonna be now the grad function of x and you're supposed to answer? Oh Okay, why is none? Because they should have written their Alfredo generated that right? Okay, all right none is fine as well Okay, so let's actually put our nose inside we were here we can actually access the first element You have the accumulation. Why is the accumulation? I don't know. I forgot but then if you go inside there, you're gonna see the Initial vector the initial tensor. We are using is the one two three four Okay, so inside this computational graph. You can also find the original tensor. Okay? All right, so let's now get the Z and Z is gonna be my y square times three And then I compute my average a it's gonna be the mean of Z All right So if I compute the square of this thing here and I multiply by three and I take the average So this is the square part times three and then this is the average, okay? So you can try it if you don't believe me All right, so let's see how this thing looks like so I'm gonna be plotting here all the sequence of Computations so we started by from a two by two metrics. What was this guy here two by two? Who is this? X okay, you're following cool. Then we subtracted Two right and then we multiply by y twice, right? That's why you have two arrows. You get the same subtraction that is the y at the x minus two multiplied by itself Then you have another multiplication. What is this? Okay, multiply by three and then you have the final The mean backward because it's why it's green because it's mean No Yeah, thank you for laughing Okay, so I compute back prop right what does back prop do? What does this line do? I want to hear everyone. You know already We compute what? Gradients right so back propagation is how you compute gradients. How do we train neural networks with? Very innocent right or whatever Aaron said yesterday back propagation instead is used for Computing the gradient completely different things. Okay, please keep them separated. Don't merge them Everyone after a bit that don't they don't see me those two things keep colliding into one Mashi thought Don't it's painful Okay, see here I compute the gradients right so guess what we are computing some gradients now Okay, so we go on your page a is going to be what What was a a was the average right? So this is a one-fourth, right? This animation of all those Z eyes Okay What so I goes from one to four? Okay, so what is that I said I is going to be equal to three? Why I square right? Yeah, no questions. No, okay All right, and then this one is was equal to three times X minus two Square right So a what does it belong to? Where does a belong to what is the are right? So it's a scalar Okay All right, so now we can compute the a Over DX So how much is this stuff you're gonna have one-fourth comes out forum here And then you have you know, let's have this one with respect to the X ith element, okay So we're gonna have this one. I plug inside the Z. I have the three why I square and it's gonna be three X I minus two square right so these three comes out here The two comes down as well, and then you multiply by X I minus two right so far should be correct Okay, fantastic. All right, so my X Was this element here Actually, let me compute as well this one. So this one goes away. This one becomes true. This is one point five times X I Minus three right minus two minus three. Okay, mathematics. Okay. Okay. Thank you. All right, so What's gonna be my DA Over DX I'm actually writing the transpose directly here. So for the first element you have one you have One times one point five so one point five minus three you get one minus one point five, right? Second one is gonna be three minus three you get zero, right? This is three minus three Maybe I should write everything right so you actually following so you have one point five Minus three now you have three minus three below you have four point five minus three and then the last one is gonna be six minus three which is gonna be equal to Minus one point five zero one point five and then three right You agree, okay Let me just write this one here Okay, just remember So we have already computed the back propagation here. I'm gonna just print the gradients and then Right it's the same stuff we got Here right such that I don't have to transpose it here Whenever you perform the partial derivative in a pytorch you get the same The same shape as the input dimension So if you have a weight whatever dimension then when you compute the partial you still have the same Dimension they don't swap. They don't turn. Okay. They just use this for practicality the correct version I mean that the gradient should be the transpose of that thing Sorry the Jacobian which is the transpose of the gradient right if it's a vector but this is a Tensor so whatever we just used the same same shape Thing no, so this one should be a flipping. I believe Maybe I'm wrong, but I don't think all right. So Cool. This is like basic This is basic pytorch now you can do crazy stuff because we like crazy, right? I mean I do I think if you like me you like crazy, too Right, okay So here I just create my vector x which is going to be a three-dimensional Well, a one-dimensional tensor of three items I'm gonna be Multiplying x by two then I call I call this one y then I start my Counter to zero and then until the norm of the y is low thousand below thousand. I keep doubling y, okay? And so you can get like a dynamic graph right the graph is base is conditional to the actual Random initialization, which you can't even tell because I didn't even use a seed So everyone that is running the stuff is gonna get different numbers So these are the final values of the y. Can you tell me how many iterations we run? So the mean of this stuff is actually lower than a thousand. Yeah, but then I'm asking whether you know how many times this loop went through No, good Why it's random, right? You know, it's bad question Okay about bad questions next time I have something for you. Okay, so I'm gonna be printing this one now I'm telling you the grad are 2048 right just check the central one for the moment, right? This is the actual gradient So can you tell me now how many times the loop went on? So someone said 11 how many hands up for 11? Okay, four people just rose the hands. What about the others? 21, okay Any other guys? 11 10, okay, we have actually someone that has the right solution And this loop went on for 10 times. Why is that? Because you had the first multiplication by two here and then the loop goes on over and over and multiplies by two, right? so the final number is gonna be the This number of iterations in the loop plus the additional like yeah additional multiplication outside, right? Yes, no, you're sleeping Maybe okay. I told you not to eat before class. Otherwise you get groggy Okay, so inference. This is cool so Here I'm gonna be just having both my x and y we are gonna just do linear regression, right linear whatever thing the eighth operator is just the Scalar product, okay, so both the x and w has have the requires gradient equal to true being this means we are gonna be keeping track of the The gradients and the computational graph. So if I execute this one you're gonna get the partial derivatives of the inner product with respect to the With respect to the input is gonna be the weights, right? so in the Range is the input, right and the ones are the weights So partial derivative with respect to the input is gonna be the weights partial with respect to the weights is gonna be the input, right? Yes, no Yes, okay now I just you know usually it's this one is the case I just have to require gradients for my parameters because I'm gonna be using the gradients for updating later on the The parameters of the mother is so in this case you get none Let's say in this case instead What I usually do when I do inference so when I do inference I tell torch a torch Stop tracking any kind of operation. So I say torch. No, but please so this one regardless of whether your Input or weights have the required grads true or false or whatever when I say torch. No grads. You do not have any Computational graph taking care of right Therefore if I try to run back propagation on a tensor Which was generated from like doesn't have actually, you know a graph because this one It doesn't have a graph you're gonna get an error Okay, so if I run this one you get an error and you have a very angry face here Because it's an error and then it takes you Element zero of tensor does not require grads and does not have a grad function, right? So e which was the Yeah, whatever the Z here actually Z you couldn't run back problem Z because there is no graph attached to Z. Okay Questions This is so powerful. You cannot do this stuff with tensor flow. Okay tensor flow is like Whatever yeah more stuff here actually more stuff coming right now So we go back here we have inside the extra folder you have some nice cute things I wanted to cover both of them just that we go just for the second. I think So the second one is gonna be the following So in this case we are gonna be generating our own specific Modules, so I like let's say I'd like to define my own function, which is super special amazing function I can decide if I want to use it for you know Training nets I need to get the forward pass and also have to know what is the partial derivative of the input Respect to the output such that I can use this module in any kind of you know point in my You know code such that you know by using backprop chain rule You just plug the thing no young went on several times as long as you know partial derivative of the output with respect to the input You can plug these things anywhere in your chain of operations. So in this case We define my addition which is performing the addition of the two inputs in this case But then when you perform the back propagation if you have an addition, what is the back propagation? So if you have an addition of the two things And you get an output when you send down the gradients, what does it happen with the with the gradient? It gets you know copied over both sides, right? And that's why you get both of them are copies of the same thing and they are sent through one side of the other You can execute this stuff. You're gonna see here You get the same gradient both ways in this case. I have a split So I come from the same thing and then I split and I have those two things doing something else If I go down with the gradients, what do I do? You add them, right? And that's why we have here the add And so you can execute this one You're gonna see here that we had these two initial gradients here and then when you went up So when you went down the two things the two gradients sum together and they are here, okay? So again, if you use pre-made things in PyTorch, they are correct this one You can mess around and you can put any kind of different you know For a function and backward function I think we are out of time other questions before we actually leave No All right, so I see on Monday and stay warm. Bye. Bye


What I realised was the amount of resource that it takes to raise a guide dog, train them, pair them with somebody that's visually impaired, and the time and the effort and also a little bit how little we knew about that process and about the importance of a guide dog in a visually impaired person's life.


you know, I had this very disjointed world where on the one hand I was an evangelical pastor's wife and on the other hand I was in the women's studies program at Chapel Hill. And so it was really interesting. So I kind of saw both sides of the coin. I saw what it looked like on the outside and then I also saw what was going on on the inside. And I think that helped me understand how strange it was to make an argument that women simply because of their gender, because of their bodies that they are not able to teach men. And I was able to see the danger behind that. I mean, if you tell men that there's something about women that they cannot learn from them, what is that telling men about women? And what is that telling women about their own worth? If they are told that by design of God, their voices don't matter as much as men's voices.


wildfires. California's burning. And I'm in California, so you should know. Fires just starting now in the LA that looked pretty brutal. Last week in the week before that, there were massive fires in Northern California. It's, you know, the sky was, the soot in the sky, much worse than Beijing. It's worst polluted day, much worse than California's pollution from automobiles than any other source has ever been. You know, the fires in California are truly horrific, destroying property. Of course, I guess the left doesn't care about property, destroying property, but destroying people's health. It's in the air. Now, this is the exercise that John Cochran wants you to consider. Imagine that these fires all happened on private property. Let's imagine a world in which Jeff Bezos and Mark Zuckerberg owned thousands of acres in Northern California, thousands of acres that they did not tend to, that they did not do anything to, to prevent fires, for example, that they just left wild. And imagine, imagine that those fires had been set by lightning or whatever. And that they were now polluting the air of Californians, destroying property, destroying the quality of life. Imagine what the response would have been of everybody. I mean, there would be massive condemnation. There would have been studies to determine why this was happening. There would have been efforts to force them to more responsibly take care of their land or just nationalize it and take it away from them. But none of that is happening. Because the land is owned by the state of California. None of that is happening. Even though these fires are preventable, these fires happen in land that has never been, that has not been cleared for years and years and years. Land where there is no fuel for the fire, just a masses, vast areas that are just ready to go up in flames. And where the government does nothing to clear them, because environmentalists don't believe in touching even a piece of wood on the ground. Instead of that, the fires are blamed, the global warming. And to prevent the fires, California is building a high speed train that's subsidized by taxpayers that will reduce California's contribution to carbon by 0.1%. And we'll make, let's assume, we'll make the climate less warm instead of going up 3 degrees that will go up 2.99999 degrees. And that they will need to pay for. But to clear the forest, no, can't do that. I mean, if global warming is real, if the temperatures are going up, if we can expect more fires in the future, then shouldn't we be investing in clearing the forest? Shouldn't we investing in more firemen? Shouldn't we be investing in more helicopters and planes, more ways in which to stop the fires, mitigate the fires?  If we really cared, we know that even if we adopt AOC's total Green New Deal, even if every country in the world adopted a Green New Deal, according to the scientists, those that the left believes in, that would have a minimal impact on climate change. So instead of doing all that, why not take the money and deal with the consequence of climate change? For example, fires. Let's start reducing the probability of fires by controlled burns, by cleaning the forest floor, by investing heavily in fire equipment. But no. The left wants none of that. Because the left doesn't care of California burns. The left indeed doesn't care if the quality of life in California gets reduced, because then the left wants people to move out. They want people to stop living in rural California. They want to huddle a lot of us into cities. Of course, nobody can afford to live in the cities. That's a different story. The left doesn't want better infrastructure. The left doesn't want us to control fires better. The left wants to watch it burn, like they do in Portland. But just on a grander scale. It's truly, truly stunning that they just are letting these fires burn, blaming climate change, and doing nothing, nothing to try to prevent it. What we need today, what I call the new intellectual, would be any man or woman who is willing to think. Meaning, any man or woman who knows that man's life must be guided by reason, by the intellect, not by feelings, wishes, wins, or mystic revelations. Any man or woman who values his life and who does not want to give in to today's cult of despair, cynicism, and impotence, and does not intend to give up the world to the dark ages and to the role of the collectivist brought. All right. Before we go on, reminder, please like the show. We've got 163 live listeners right now. 30 likes. That should be at least 100. I figure at least 100 of you actually like the show.  But at least the people who are liking it, I want to see a thumbs up. There you go. Start liking it. I want to see that go to 100. All it takes is a click of a thing, whether you're looking at this. And you know the likes matter. It's not an issue of my ego. It's an issue of the algorithm. The more you like something, the more the algorithm likes it. So if you don't like the show, give it a thumbs down. Let's see your actual views being reflected in the likes. But if you like it, don't just sit there, help get the show promoted. Of course, you should also share. And you can support the show at youronbrookshow.com slash support on Patreon or Subscribestar or locals and show your support for the work, for the value. Hopefully you're receiving from this.  You'll know what shows are on, when they're on. You'll get notified. So yes, like, share, subscribe, support. Like, share, subscribe, support. There you go. Easy. Do one or all of those, please.


Welcome to All Hands Update. Here's what's happening around your Navy. Naval Surface Warfare Center, Dahlgren Division, tested a strike group's ability to bring together weapon systems, combat systems, and unmanned vehicles to work with surface and air assets while engaging targets. It's the first time the entire strike group has worked in a land-based environment to plan, detect, control, engage, and assess possible threats. Sailors from EOD Mobile Unit 8 participated in Northern Coast 2016 around the Baltic Sea. During the exercise, maritime forces worked with foreign counterparts to build teamwork and strengthen relationships amongst the 14 nations. USS America and USS Wayne E. Meyer set sail after participating in Fleet Week Los Angeles, the week-long event consisted of ships tours, com-rails, and socializing with the local community. You can read more about what's happening around your Navy at Navy.mil.


Good afternoon. The first item of business this afternoon is Time for Reflection. Our Time for Reflection leader today is Diana Wilson, participant in the Glasgow Jewish Representative Council, Scottish Jewish Archives, Faith in Older People and Interfaith organisation. Thank you, Presiding Officer, for the opportunity to take part in Time for Reflection. The last time I addressed this Parliament was in 2003, when I was an active retired woman in my mid-60s. Now I'm an active older woman in my late 70s, so when do I become elderly? Will I be invited back when I'm 90? As a trustee of faith in older people for the last few years, I have been able to reflect on the needs of older people beyond the physical dimension. The spiritual aspect of their lives becomes more compelling as they come face to face with their impending mortality. In the Jewish scriptures, there is a commandment to honour the elderly, no matter their contribution to society. High-profile elderly people command much respect. Her Majesty the Queen is approaching her 90th birthday. We remember Nelson Mandela, Mother Teresa and others. But what about ordinary people whose achievements are unknown and unrecognised except by their families and their communities? They often become just a name above a hospital bed. My late mother embodied her own philosophy for life, which was, you have to be a good person. Few people in Scotland will know of her good deeds, nor those of many other remarkable older people throughout our country. In 1998, a book of photographs taken in a Marie Curie hospice by Colin Dixon was called Remaining Human. In his preface, he said that he had taken the photographs to show that, faced with the prospect of death, most people remain completely human. He said, until you are dead, you're still alive. Their lives are still going on and they can laugh and be sad and be generous and be cruel. In other words, people just like other people. Those observations could apply equally to the elderly. Through my involvement with the Scottish Jewish Archives, I have had the privilege of interviewing older members of our community. I have learned of the challenges they faced growing up during the war, their service to our country, both in wartime and in peace. It is so important to hear their voices and experiences and their contribution to the Scottish story. I will finish by quoting Rabbi Beryl Wine. May we all be blessed to come to the fullness of our lives with all our days attached to us in serenity and achievement.