<p>This week I was busy applying for jobs and working on the CS38220 assignment. So I only managed to do code clean-up and implementing a config file which allows a user to change the order of filters and other settings.
Config file example: config.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 --- # Config file for autophotographer # List of filters to apply in order filters: - brightness - filesize - contrast - focus # Whether or not to apply CNN ranking CNNrank: True # Options for focus filter brightness_options: threshold: 0.
<p>Monday # Towards the end of last week ( Week 7), I managed to refactor my code in order to make it more portable. This allowed me to train my model on different machines. I ran my training script on the uni’s GPU compute successfully for 20 epochs. The next stage was to train it for longer and analyse the results. On the Monday morning I adjusted the parameters of my training script to train for 2000 epochs instead.
<ahref="/posts/week-8/">...</a>
</p>
</article>
<articleclass="markdown book-post">
<h2>
<ahref="/posts/week-7/">Week 7</a>
</h2>
<h5>March 20, 2022</h5>
<p>Now that I had successfully run my model without any runtime errors, the next step this week was finding some GPU compute so I can train my model on much more powerful hardware to accelerate the training.
My first idea was to use cloud computing. There are machine learning specific cloud technologies, but I didn’t want to use these as I didn’t want my code to be dependent on the specific ways cloud platforms want the code in.
<ahref="/posts/week-7/">...</a>
</p>
</article>
<articleclass="markdown book-post">
<h2>
<ahref="/posts/week-6/">Week 6</a>
</h2>
<h5>March 13, 2022</h5>
<p>This week I finished programming the basic CNN model using transfer learning. I decided to train it for 20 epochs to make sure there weren’t any runtime errors in my code. As I don’t own an Nvidia GPU (I have an AMD GPU), I couldn’t make use of the pytorch version that utilised CUDA to speed up processing. There is a RocM version of pytorch for AMD GPUs1 but RocM isn’t as mature as CUDA and only officially supports a small subset of Linux distributions.
<ahref="/posts/week-6/">...</a>
</p>
</article>
<articleclass="markdown book-post">
<h2>
<ahref="/posts/week-5/">Week 5</a>
</h2>
<h5>March 6, 2022</h5>
<p>Starting to write a CNN # This week I started to implement what I had learnt about CNNs in Week 4. At this point I hadn’t designed a CNN architecture to implement, instead I wanted to have a running model regardless of performance just to see if I could implement one and understand it.
Half way through implementation, I decided to look back at the existing research papers on judging aesthetic judgement to see which aspects of their system and CNN were important to the task.
<p>This week I did some research into how to build a CNN from scratch, including the different type of layers, loss functions, learning rates, epochs and other core concepts.12
I also set up and created this blog with Hugo to document my progress and setup Woodpecker CI to do continuous testing and integration.
<p>Filming footage # At the start of the week I went into town to film some practise footage to work with later (up until this point I had been experimenting with footage limited by my bedroom walls). I took some basic vertical and horizontal footage of the town - no nature or breach footage yet.
Gaining more useful information # I used the footage I had recorded at the start of the week and revised my “filesize” code.
<ahref="/posts/week-3/">...</a>
</p>
</article>
<articleclass="markdown book-post">
<h2>
<ahref="/posts/week-2/">Week 2</a>
</h2>
<h5>February 13, 2022</h5>
<p>This week I set up my repositories and starting writing some basic code.
Set up # Before starting any coding, I wanted to set up my remote git repositories. I had already decided I wanted the project mirrored over two remote git repositories from different providers as a safety precaution. My intial plan was to use the university’s GitLab instance but as it’s recently been moved behind the firewall it would have made mirroring quite difficult.
<ahref="/posts/week-2/">...</a>
</p>
</article>
<articleclass="markdown book-post">
<h2>
<ahref="/posts/week-1/">Week 1</a>
</h2>
<h5>February 6, 2022</h5>
<p>This week is the first week of the project. I researched academic papers, existing code and dataset relating to the topic of determining aesthetics.
Papers # Photo Aesthetics Analysis via DCNN Feature Encoding1 - Predicting aesthetic performance using a bespoke CNN solution
AVA: A large-scale database for aesthetic visual analysis2 - Making of an aestehtic visual analysis dataset
Code # Image Quality Assessment - Convolutional Neural Networks to predict the aesthetic and technical quality of images.