- 125
- 342 887
Mike Saint-Antoine
United States
เข้าร่วมเมื่อ 29 พ.ย. 2020
Python Basics 10: Functions
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming.
Let me know if you have any questions! 🙂
Let me know if you have any questions! 🙂
มุมมอง: 71
วีดีโอ
Python Basics 9: Boolean Logic (AND / OR / NOT)
มุมมอง 31หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Python Basics 8: While Loops
มุมมอง 732 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Python Basics 7: For Loops
มุมมอง 772 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Python Basics 6: Lists
มุมมอง 202 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Python Basics 5: User Input
มุมมอง 652 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Python Basics 4: If Statements
มุมมอง 512 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Python Basics 3: Data Types
มุมมอง 702 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Basic Python 2: Variables
มุมมอง 722 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Basic Python 1: Installing Python and Writing Our First Program
มุมมอง 1542 หลายเดือนก่อน
Hi everyone! This video series is meant to give a very basic introduction to Python, and is intended for beginners who are completely new to computer programming. Let me know if you have any questions! 🙂
Neural Nets from Scratch in Julia [PART 18]: Solving MNIST
มุมมอง 1274 หลายเดือนก่อน
Hi everyone! This tutorial series is about how to make a neural network from scratch in Julia. All the code from this series is available here: github.com/mikesaint-antoine/Comp_Bio_Tutorials/tree/main/neural_nets_from_scratch Also, this tutorial series is largely based on SimpleGrad.jl, a real Julia package that I wrote: mikesaint-antoine.github.io/SimpleGrad.jl/ Thanks for watching and let me...
Neural Nets from Scratch in Julia [PART 17]: Softmax Activation / Crossentropy Loss (2)
มุมมอง 724 หลายเดือนก่อน
Hi everyone! This tutorial series is about how to make a neural network from scratch in Julia. All the code from this series is available here: github.com/mikesaint-antoine/Comp_Bio_Tutorials/tree/main/neural_nets_from_scratch Also, this tutorial series is largely based on SimpleGrad.jl, a real Julia package that I wrote: mikesaint-antoine.github.io/SimpleGrad.jl/ Thanks for watching and let me...
Neural Nets from Scratch in Julia [PART 16]: Softmax Activation / Crossentropy Loss
มุมมอง 504 หลายเดือนก่อน
Hi everyone! This tutorial series is about how to make a neural network from scratch in Julia. All the code from this series is available here: github.com/mikesaint-antoine/Comp_Bio_Tutorials/tree/main/neural_nets_from_scratch Also, this tutorial series is largely based on SimpleGrad.jl, a real Julia package that I wrote: mikesaint-antoine.github.io/SimpleGrad.jl/ Thanks for watching and let me...
Neural Nets from Scratch in Julia [PART 15]: Tensor ReLU Function
มุมมอง 564 หลายเดือนก่อน
Hi everyone! This tutorial series is about how to make a neural network from scratch in Julia. All the code from this series is available here: github.com/mikesaint-antoine/Comp_Bio_Tutorials/tree/main/neural_nets_from_scratch Also, this tutorial series is largely based on SimpleGrad.jl, a real Julia package that I wrote: mikesaint-antoine.github.io/SimpleGrad.jl/ Thanks for watching and let me...
Neural Nets from Scratch in Julia [PART 14]: Tensor Addition
มุมมอง 564 หลายเดือนก่อน
Hi everyone! This tutorial series is about how to make a neural network from scratch in Julia. All the code from this series is available here: github.com/mikesaint-antoine/Comp_Bio_Tutorials/tree/main/neural_nets_from_scratch Also, this tutorial series is largely based on SimpleGrad.jl, a real Julia package that I wrote: mikesaint-antoine.github.io/SimpleGrad.jl/ Thanks for watching and let me...
Neural Nets from Scratch in Julia [PART 13]: Tensor Matrix Multiplication
มุมมอง 394 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 13]: Tensor Matrix Multiplication
Neural Nets from Scratch in Julia [PART 12]: Adding Tensor Functionality
มุมมอง 644 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 12]: Adding Tensor Functionality
Neural Nets from Scratch in Julia [PART 11]: Defining Tensor Type
มุมมอง 674 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 11]: Defining Tensor Type
Neural Nets from Scratch in Julia [PART 10]: Value Tanh Function
มุมมอง 574 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 10]: Value Tanh Function
Neural Nets from Scratch in Julia [PART 9]: Value Inversion and Division
มุมมอง 434 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 9]: Value Inversion and Division
Neural Nets from Scratch in Julia [PART 8]: Value Negation and Subtraction
มุมมอง 634 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 8]: Value Negation and Subtraction
Neural Nets from Scratch in Julia [PART 7]: Value Multiplication
มุมมอง 494 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 7]: Value Multiplication
Neural Nets from Scratch in Julia [PART 6]: Adding Robustness
มุมมอง 755 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 6]: Adding Robustness
Neural Nets from Scratch in Julia [PART 5]: Backpropagation for Addition (2)
มุมมอง 675 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 5]: Backpropagation for Addition (2)
Neural Nets from Scratch in Julia [PART 4]: Backpropagation for Addition
มุมมอง 905 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 4]: Backpropagation for Addition
Neural Nets from Scratch in Julia [PART 3]: Value Addition
มุมมอง 885 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 3]: Value Addition
Neural Nets from Scratch in Julia [PART 2]: Defining "Value" Type
มุมมอง 1495 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 2]: Defining "Value" Type
Neural Nets from Scratch in Julia [PART 1]: Introduction
มุมมอง 7085 หลายเดือนก่อน
Neural Nets from Scratch in Julia [PART 1]: Introduction
How to Make a Job History Timeline with Python/Matplotlib
มุมมอง 4097 หลายเดือนก่อน
How to Make a Job History Timeline with Python/Matplotlib
Lesson 5: Differential Expression Heatmap Plot
มุมมอง 2588 หลายเดือนก่อน
Lesson 5: Differential Expression Heatmap Plot
Great lecture !
Thanks and let me know if you have any questions! 🙂
I am watching all of your videos. Thank you for existing! You're playing a big role in my own undergraduate experience.
No problem and let me know if you have any questions! 🙂
Please make more videos about proteomics. Thanks.
Ok, I'll try to make some more in the future!
Hi, if the data file does not mention treatments given, rather name it as samples 1-10, how can I get the treatment conditions of samples?
Hi Harsha, sorry about the late reply! Unfortunately I don't really have a good answer to this question. Usually you have to kinda look around the other files they have posted, and try to find the one that has the relationship between sample labels and treatments. Or if you can't find it, try reading through the methods section of the paper to see if it's there. I purposely picked a nice and easy dataset to work with for this video series, but unfortunately sometimes it's not so easy to find all the information you need for the analysis. Good luck with your research!
Great video. Really helpful!
Thanks for watching 🙂
the population status of the predator is 1, that's a bit strange, will it reproduce? I'm asking seriously
Hi, sorry about the confusion! I put on the plot axis label that the unit here is in the hundreds, so the predator population was starting at 1 (hundred) and the prey population was starting at 10 (hundred). But I forgot to actually say this! So good point, yes if it was just one predator then it wouldn't make sense because they would't be able to reproduce.
@@MikeSaintAntoine if x=initial number of predators and y=initial number of prey do we always start by getting to a situation where x=1? it seems that this makes the calculations easier because x*y=y, am I thinking correctly?
@@ciferusbux Note that the values of x and y in this model are not necessarily integers. For example, x could be 327.61325.... The model isn't meant to provide an exact number of predator/prey at a certain time, it is meant to demonstrate the overall trends in the population change over time. Hopefully that helps.
Love this tutorial. getting an error on saving the .npy ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 2 dimensions. The detected shape was (9210, 2) + inhomogeneous part.
Hi, off the top of my head I'm not sure what the error could be. If you've copied the exact same code I used and are still getting an error, that could be because we're using different versions of the same package, like maybe you have an older version, or maybe you have a newer version and they changed something so that my original code no longer works. Could you send me your code to take a look at? My email is mikest@udel.edu. Then maybe I'll be able to reproduce the error and fix it. Thanks!
Thank you for the helpful content you’ve shared on bioinformatics topics. Could you consider making a tutorial on GSEA - gene set enrichment analysis? It would be great to see a step-by-step guide on how to perform and interpret GSEA results, especially with practical examples. Thanks so much.
Hi, yeah that's a good idea, I'll try to make a video on GSEA in the future!
Hi, it maybe a silly thing to ask but I can’t seem to wrap my head around on the IF statement block for production and decaying event. I don’t understand how those conditions were set for production and degradation event from the mathematical conditions we saw in the previous video. I’d appreciate if u can shed some light into it even though it’s kinda old video. Thanks
Hey Zubair, good question and definitely not silly to ask! Yeah that part is a bit difficult to understand and it took me awhile to wrap my brain around it myself. I think a good first step is to understand exactly what we're trying to do when we randomly pick the next event. So basically we want to randomly pick the next event with a random draw, but with probabilities weighted according to the rates (also called "propensities"). And these rates change because they depend on the current level of X, so we need to calculate them again each time. So let's say that we're choosing the next event, and and we calculate that the rate for production is 2 (actually it will always be 2 in this example because it doesn't depend on X), and the rate for degradation is 1 (0.1 * X where X=10, for example). So knowing that the rate of production is 2 and the rate of degradation is 1, we want to randomly pick which event will happen next. So basically we convert these into probabilities by dividing the rate of each reaction by the sum of all the rates. So the probability that the next event will be production is 2 / (2+1) = 0.67. And the probability that the next event will be degradation is 1 / (2+1) = 0.33. So basically we want to choose the next event with a random choice, weighted according to these probabilities. The for-loops are just a way of doing that -- randomly picking a next event, weighted according to the appropriate probabilities. It's a little tricky to understand, but if you work your way through it, maybe on paper with the simple example, then you'll see that the first if-statement turns out to be true 67% of the time for the example I just gave, and the elif-statement turns out to be true 33% of the time. Note also that in this simulation with only 2 events we don't even really need the elif-statement. We could have just said "else" and left it at that. But I put the elif statement to show the general pattern, because it we had more than 2 events we'd need to put an elif-statements that follow that general pattern. Anyway, very good question. Yeah wrapping your head around the if-statement checks here can be a little tricky, but I think they key takeaway is that they're just picking the next event randomly, with probabilities that come from the relative rates of the reactions at this point in the simulation.
@@MikeSaintAntoine Ahhh I see. I think now I'm getting the gist of it. After playing around with different values for rand product on paper just like you said, I started to see how the value is weighted within the scope of probabilities of each reaction event. It's a bit tricky indeed but now I'm actually getting hang of it. Thank you so much for taking the time to break it down for me. As someone from medical biotech field it's not so very often for me to deal with such mathematical concepts. But you're making it digestible for us 😄. Please keep doing the good work!
@@zubairhasan9434 No problem, and let me know if you have any more questions! 🙂
Hi there! Does this still apply if we are in the early stages of the diffusion process (in the case of an innovation)? That is, we do not have all data (the overall picture) of the process but just the early data.
Hi! Sorry but I don't think I really understand your question. Could you give me some more details on what you're trying to model? But generally a good way to see if this model applies to a dataset is to just plot the data and check it visually -- does it look like the population is increasing exponentially at first, but then leveling off at a carrying capacity?
The stochastic indicator on stock charts makes more sense to me now, thanks.
Yeah there's a actually a hypothesis in economics that stock prices tend to follow a random walk: en.wikipedia.org/wiki/Random_walk_hypothesis so good observation! Thanks for watching 🙂
There are multiple IDEs for Python. Just thinking about Spyder, VSCode, PYCharm, and many more
Thanks Mike. Could you teach how to use an IDE for python. Anything similar to R studio? Also looking forward to seeing omics dataframe analysis 😊
I'm not really in a good position to make an IDE video because I actually just use VSCode for writing Python, and don't really use any of the fancy extra features. I just use it like a text editor really. I know there are some pretty advanced IDEs for Python with built-in debuggers and stuff, but I don't really use them. But yeah in the future I can try to make some videos on dataframes / Pandas library. Thanks for watching! 🙂
Hey Mike, I did same exact thing as you did in your code, but my testing model is taking a lot of time and showing the result. would you mind taking a look on the error or code if you get time?
Hey Arpit, yeah sure just email your code to me at mikest@udel.edu and I'll take a look!
Illustrate download, install, setup, and configuration on windows and Linux also.
Hi! Unfortunately I don't have a Windows or Linux computer so I won't be able to actually make a video on that. But my guess is that it's probably the same -- you should be able to install Python from python.org, and when you download and install it should give you the IDLE application automatically.
Hi Mike, these video series are great resource to learn Python. Coming from wetlab, I always struggle to learn coding 😅. Could I ask a favor. Is it possible to do a video lesson with real life data set. Imagine you received a Metabolomics / transcriptomics data matrix. Could you demostrate how you upload the data to downstream exploratory data analysis. 😊
Yes, I'll try to make something like that in the future! I've actually already made a series like that in R, but I'd like to make one for Python too.
where does sample appear, it is not describe before in the script. or is it part of R commands
Hi, very sorry about the late response! Are you talking about "sample" in this block of code? for(sample in samples){ tmp <- unlist(strsplit(sample,"_")) classes <- append(classes, tmp[1]) } If so, "sample" is just the temporary variable we're using to iterate through the items in the "samples" vector. So basically it's getting assigned to each item in "samples" with each pass of the for loop. Does that make sense? I hope I understood your question correctly, but please let me know if you're still confused and I can try to explain further. Thanks for watching! 🙂
After doing some research, it turns out a lot of these predatory conferences are real events that actually take place. However, they're usually very chaotic and unprofessional, with no real organisation as talks are swapped around and cancelled last-minute. Also, when you see many conferences all taking place on the same date and location, chances are they're all pointing to the same event, mashing together many unrelated fields into a single conference.
Yeah, good point!
thank you
Thanks for watching! 🙂
Maybe I did something wrong but I needed to implement these methods (suggested by ChatGPT) to avoid errors using the Tensor constructor: # Implementing required methods for AbstractArray interface Base.size(t::Tensor) = size(t.data) # size method for Tensor Base.getindex(t::Tensor, i::Int, j::Int) = getindex(t.data, i, j) # getindex method to access elements Base.setindex!(t::Tensor, v, i::Int, j::Int) = setindex!(t.data, v, i, j) # setindex! for setting elements
It strikes me that if there are no cycles in the neural network, then checking whether a node has been visited before is redundant, and so you can just remove the visited array completely making the build_topo function much faster. If there are cycles, then this code will not give the correct answer (or maybe a poor man's approximation at best).
Yes, good point! If you're only doing neural networks, then the visited check isn't necessary. But part of the idea of the Value type is that it should be useful as a general gradient tracker for basic operations, which could include a cycle. Thanks for watching! 🙂
If you can use (1 - val.data^2) here (since sech^2(x) = 1 - tanh^2(x)), then you should also be able to use simply val.op.args[1].grad -= val.data^2 * val.grad in the backprop!() function for inv() as (1/x^2) = y^2
Yes, you're right! Good call on that one, that's an easier way of writing it than what I wrote.
Thanks Mike. Looking forward to wathcing all of the videos on python tutorial
Thanks for watching, and let me know if you have any questions! 🙂
Doing <= will make the iterator go out of index as the length of a list is 1 more than the index of the last element. Thus we will get an error if we do that.
Correct! Yeah this is called an "off-by-one" error and is a common bug that comes up a lot, both for beginners and even more more advanced programmers who make the absent-minded mistake.
@@MikeSaintAntoine Wow. Didn't know it's name. Thank you.
R's list has type match requirement, python does not c('list',0) will not fly in R, but ['list',0] will work in python
Good point! Yeah Python is more flexible with typing, and I think generally more convenient than R.
Can you remake this for Julia?
Hi! That's a good idea, I've been meaning to remake this video for both Python and Julia, but just haven't gotten around to it. But hopefully in the future once I have time. Thanks for watching! 🙂
Hi Mike i enjoyed watching your videos can u please help me for LHS/PRCC sensitivity analysis of my model? it would be a great because i can't understand it
Hi, sorry about the late response! I don't have much familiarity with LHS/PRCC sensitivity analysis, but if you email me your code at mikest@udel.edu I can take a look and try to help.
Hello, thanks a lot for your playlist about Julia. I want to say that I used metaprogramming for DRY. Something like this: for op in (:-, :tanh, :inv) @eval function ($op)(a::Value) Value(($op)(a.data), 0.0, Operation($op, (a,))) end end
Oh nice, very cool! Yeah that's a good use of metaprogramming. I think it definitely makes the code cleaner and nicer, although with this series I was focused on teaching and readability rather than writing production-quality code, so I think for the goal of teaching it might still be easier to explicitly write out each function separately rather than use the metaprogramming approach. Thanks for watching! 🙂
This is turning out to be a super-helpful channel. Thanks so much!
Thanks for watching, and let me know if you have any questions! 🙂
thanks <3.
Thanks for watching! 🙂
Hi there. I'm a little confused by something, you are correlating gene expression values between two genes, but each gene has a control and a treatment sample set. Are you looking at correlations between the overall expression values for each gene across treatments, or the correlation between the foldchange resulting from the treatment? I have a DESeq experiment and I would like to draw correlations between the fold change expression values of one gene vs the other if that makes sense.
Hi, good question! Yes in this example it's looking at correlation for all samples across both conditions. So basically, a high positive correlation between two genes means that expression changed in the same way due to the drug (either both up or both down). A high negative correlation between two genes means that their expression changed in opposite directions due to the drug. Usually when I compute foldchange (or log2-foldchange), I do it like this: log2(mean(drug_expression) / mean(control_expression)), so that it gives only one number for each gene, since it's computed based on the mean expression in each condition. So with only one number per gene, you can't really compute the correlation between two genes. But another way to do it is to compute the log2-foldchange for each drug sample, relative to the control mean, so that will still give you a vector of numbers as a result and you could look at correlation between two genes. I'm not exactly sure if this makes sense though, since it seems like it's losing some information. Basically doing it this way is normalizing the drug-condition expression measurements by the control expression mean. So if we normalize away the effect of the drug, then we're losing that information when we eventually go to calculate the correlations between genes for the log2FC-transformed drug expression values. Does that make sense? If you need any help or want to discuss further, feel free to email me at mikest@udel.edu 🙂
@@MikeSaintAntoine@MikeSaintAntoine Hi, I am correlating gene expression values between two same genes (cross-talk genes) from different datasets, but each gene has a control and a case sample set. In this case, what value should I use for correlation analysis?
@@SNMS1114 Hi! I think in that case you should include both control and sample data, and compute the correlation for the genes across both of these conditions. That will give you an idea of how the case-condition is affecting their expression -- does it affect both in the same direction? or in opposite directions? or is there no correlation? If you need any help, please feel free to email me at mikest@udel.edu and I can take a look at your code. Thanks for watching! 🙂
I mean cross talk genes from the different case. But i want to perform pearson correlation analysis. So, each case has samples as control and case. When I compare the crooss talk genes from different two case.
nice, thanks you for the video <3!!
Thanks for watching! 🙂
Hi Mike Thank you very much for the informative video. One request, can you teach the MCMC using Python as well?
Good idea, I'll try to make a Python version when I have time!
@@MikeSaintAntoine 👍
Hi, I just started your tutorial and very informative even for beginners (just like me) as well. My data set has numbers in GeneID rather symbols. Can you please help in how to change GeneID numbers into Symbols. Thanks again for course.
Hi, sorry about the late response! Yeah that's a tricky problem with gene expression analysis. Often the datasets will give you some kind of ID number rather than the actual gene name. Is there another file somewhere in the dataset that tells you how the IDs correspond to gene names? If not, then you might need to figure out what type of IDs they are, and then you can use an R library called "org.Hs.eg.db" to convert them. For example, if the IDs look like this: ENSG00000139618, then those are called Ensembl IDs and you can convert them to gene names in R like this: library(org.Hs.eg.db) gene_names <- mapIds(org.Hs.eg.db, keys = gene_ids, column = "SYMBOL",keytype = "ENSEMBL") Anyway I hope that helps. Yeah these gene ID conversions are always a bit tricky and annoying.
AMAZING VIDEO. I actually had the same struggle in finding functions for computing MI in Python. Fun fact.... My professor explained "information" as the amount of "surprise": Here is a fun example: The probability of being sunny in the desert is almost 1. Therefore, the information is low. E.g. I already know that tomorrow is likely to be sunny... However, rain in the desert is very unlikly to happen and it's unexpected. Thus, the "infomation" is higher because this message has high information.
Thanks for watching, and yeah I think explaining it as the amount of "surprise" a random variable has makes sense!
clear explanation from basics love from India... keep doing sir helps lot of students like me...🔥🔥🔥🔥😍
Thanks for watching and let me know if you have any questions! 🙂
Super interesting. Thank you!
What’s next??
Not sure! Ideally I'd like to add in some more functionality, to do some more complicated things like convolutions and transformers. Anything you'd like to see in particular?
My grandson signed up a few weeks ago, (17) and he has just learned that he is color blind. He is extremely upset!
Red- green.
Ah, I'm sorry to hear that! But maybe you can tell him to try to look on the bright side. Even though it limits what he can do, it won't disqualify him completely from joining like a lot of other medical conditions would. Also if he has any questions about it he can always send me an email at mikest@udel.edu.
Thank you very much for this video, Mike. I finally find a way to go when estimating parameters for ODEs. In my particular case, I don't have any idea on a prior estimation for several of them, thus I find very useful your video. I have a DAE system that has 3 ODEs and one AE, and 12 parameters to estimate. I have two questions respect the modifications I need to make to the code you kindly provide, in order to carry on the estimation: 1) I see that, in the datagen function, the output [out] includes a sum(y,2), which I understand it returns a vector with the sum per each row of the cell count part of the ODE just solved by ode23s. In the example, it is just one column for the dependent variable, so the sum is just the same value for the cell count solution for each time. If I have 3 dependent variables in the solution, should I use the sum as you wrote it?, or should I use plainly the resulting matrix? (I doubt myself on doing the sum, since one of the variables does not have the same units as the other two variables). 2) In the likelihood estimation, how do I proceed to calculate it?: do I calculate 3 likelihoods for each variable and sum them up later? do I modify the data and datagen matrices inside the pdf function to include directly all the columns for the 3 dependent variables? (does the code line work like that for multivariate LL?) I am kind of lost, as I did some out-of-the-blue modifications, but the code won't advance from iteration 2 when running it (also given that my laptop is not the fastest :/ ) Any help would be valuable, if the method works for me, I can proceed with my PhD thesis dissertation data analysis and writing (longing toooo much to finish it!). Thanks again for such a great video! Very valuable!
Hey Luis, I got your email and replied! 🙂
@@MikeSaintAntoine I sawit and your remarks were really helpful! Thank you very, very much!
Sendex +1
Always very well explained.
Loving the journey.
Glad you're enjoying it! Let me know if you have any questions 🙂
Talented Mike! Love!
Thanks!
Thanks for watching everyone! Here's the link to the full SimpleGrad package in case you want to check it out: github.com/mikesaint-antoine/SimpleGrad.jl
Thanks for watching everyone! Here's the link to the full SimpleGrad package in case you want to check it out: github.com/mikesaint-antoine/SimpleGrad.jl
Thanks for watching everyone! Here's the link to the full SimpleGrad package in case you want to check it out: github.com/mikesaint-antoine/SimpleGrad.jl
Thanks for watching everyone! Here's the link to the full SimpleGrad package in case you want to check it out: github.com/mikesaint-antoine/SimpleGrad.jl
Thanks for watching everyone! Here's the link to the full SimpleGrad package in case you want to check it out: github.com/mikesaint-antoine/SimpleGrad.jl
Thanks for watching everyone! Here's the link to the full SimpleGrad package in case you want to check it out: github.com/mikesaint-antoine/SimpleGrad.jl