├── .github └── ISSUE_TEMPLATE │ └── idea.md ├── FAQ.md ├── README.md ├── Rules.md ├── code-of-conduct.md ├── datasets.md ├── project-ideas.md └── submissions ├── GymRogueOne ├── License.txt ├── ReadMe.md └── Team.txt ├── Team-1 └── README.md ├── Team-InfraClassify └── README.md └── dayo05 └── readme.md /.github/ISSUE_TEMPLATE/idea.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Submit a new idea for the Virtual ML.NET Hackathon 3 | about: Submit a new Hackathon Idea 4 | title: ML.NET Hackathon Idea 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | ## Hackathon Idea 11 | Please fill out this form to submit an idea for the Virtual ML.NET Hackathon 12 | 13 | ### Your name 14 | Who's submitting this idea? If you already have a team, add all members of the team here 15 | 16 | ### Team name 17 | Already have a team? Tell us what we should call you! 18 | 19 | ### Brief Description 20 | Description of what you want to achieve and what problem you're trying to solve 21 | 22 | ### Other 23 | **Are you looking for team members?** 24 | - [ ] Yes 25 | - [ ] No 26 | -------------------------------------------------------------------------------- /FAQ.md: -------------------------------------------------------------------------------- 1 | # Frequently Asked Questions 2 | 3 | See the list below of commonly asked questions. 4 | 5 | ## When will the event take place? 6 | 7 | The event will take place from November 12-19, 2021. 8 | 9 | To accomodate different locations, this year we'll have two kickoff streams: 10 | 11 | - 19:00 UTC +11 (UK & Australia) 12 | - 16:00 UTC -4 (US) 13 | 14 | | Date | Activity | Description | 15 | | --- | --- | --- | 16 | | November 12 (19:00 UTC +11 & 16:00 UTC-4) | Kickoff | Kick off stream ([Twitch](https://www.twitch.tv/virtualmlnet) / [YouTube (UK/Australia)](https://www.youtube.com/watch?v=7cLMwtDa0S4) / [YouTube US](https://www.youtube.com/watch?v=NofGYVdL49o)) 17 | | November 12-17 | Hacking | Use this time to hack on your idea 18 | | November 17 (11:59 PM PDT) | Final submissions due | You're done! 19 | | November 19 | Top projects announced | Congratulations! ([Twitch](https://www.twitch.tv/virtualmlnet) / [YouTube](https://www.youtube.com/watch?v=u7kzLUgCZvI)) 20 | 21 | ## How do I create a project? 22 | 23 | Once you've joined the [hackathon Discord channel](https://aka.ms/mlnet-hackathon-discord), create a project by [submitting an issue to the repository](https://github.com/virtualmlnet/hackathon-2020/issues/new?assignees=&labels=&template=idea.md&title=ML.NET+Hackathon+Idea). 24 | 25 | ## Can I bring an existing project? 26 | 27 | No. Only new projects started on November 12 will be considered for submission. 28 | 29 | ## Do I need to be on a team? 30 | 31 | Although we encourage collaboration between participants, we're also happy to have teams of one person. Like most projects, the team is intended to bring together people that want to solve a similar problem. 32 | 33 | ## What types of projects can I work on? 34 | 35 | Though this list is not exhaustive, it may provide some guidance: 36 | 37 | - Contributions to the [dotnet/machinelearning](https://github.com/dotnet/machinelearning) repository 38 | - Build tooling for ML.NET 39 | - End-user applications (train and deploy machine learning models) 40 | - Other (trainings, videos, articles) 41 | 42 | For some ideas, see the [project ideas page](project-ideas.md) or last year's [submissions](https://github.com/virtualmlnet/hackathon-2020/tree/main/submissions). 43 | 44 | ## Do I have to use ML.NET? 45 | 46 | Yes. Where you use ML.NET is your choice, but it is expected you use or extend ML.NET in your solution. 47 | 48 | ## When are submissions due? 49 | 50 | Submissions are due November 17, 2021 at 11:59 PM PDT 51 | 52 | ## What do I need to submit? 53 | 54 | - 1-3 minute video showcasing your project. 55 | - Source code. 56 | 57 | > The source code does not have to run in order to be submitted. 58 | 59 | ## How do I submit? 60 | 61 | In the GitHub issue for your project, provide the link to your video as well as source code. 62 | 63 | **Make sure that the video and source code are both publicly accessible.** 64 | 65 | See the *submissions/Team-1* directory for a sample submission. 66 | 67 | ## What should I use to record the submission video? 68 | 69 | We have no preference and you can use whatever software you feel most comfortable with. If you need suggestions, here is a list of them: 70 | 71 | - [PowerPoint Screen Recorder](https://support.microsoft.com/en-us/office/record-your-screen-in-powerpoint-0b4c3f65-534c-4cf1-9c59-402b6e9d79d0) (Free) 72 | - [Quicktime (Mac)](https://support.apple.com/en-us/HT208721) (Free) 73 | - [Open Broadcaster Software (OBS)](https://obsproject.com/) (Free) 74 | - [Camtasia](https://www.techsmith.com/video-editor.html) (Paid but with free trial) 75 | - [ScreenFlow (Mac)](https://www.telestream.net/screenflow/overview.htm) (Paid but with free trial) 76 | 77 | No need to do any fancy editing. Just show off your project or contribution. 78 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Virtual ML.NET Hackathon 2021 2 | 3 | Welcome to the 2021 Virtual ML .NET Hackathon! 4 | 5 | **When:** November 12-19, 2021 6 | **Where:** Virtual 7 | 8 | ## Get Started 9 | 10 | - [Join the Virtual ML.NET Hackathon Discord channel](https://aka.ms/mlnet-hackathon-discord). This will be the main form of direct communication. 11 | - [Create a project](https://github.com/virtualmlnet/hackathon-2021/issues/new?assignees=&labels=&template=idea.md&title=ML.NET+Hackathon+Idea) 12 | 13 | This year, we're not having an introduction to Machine Learning session. If you're new to ML.NET, check out this workshop [Let's Learn ML.NET](https://www.youtube.com/watch?v=sBHRd6e5ZBY) and follow along with this [Microsoft Learn module](https://docs.microsoft.com/learn/modules/predictive-maintenance-model-builder/) 14 | 15 | ## Schedule 16 | 17 | To accomodate different locations, this year we'll have two kickoff streams: 18 | 19 | - 19:00 UTC +11 (UK & Australia) 20 | - 16:00 UTC -4 (US) 21 | 22 | | Date | Activity | Description | 23 | | --- | --- | --- | 24 | | November 12 (19:00 UTC +11 & 16:00 UTC-4) | Kickoff | Kick off stream ([Twitch](https://www.twitch.tv/virtualmlnet) / [YouTube (UK/Australia)](https://www.youtube.com/watch?v=7cLMwtDa0S4) / [YouTube US](https://www.youtube.com/watch?v=NofGYVdL49o)) 25 | | November 12-17 | Hacking | Use this time to hack on your idea 26 | | November 17 (11:59 PM PDT) | Final submissions due | You're done! 27 | | November 19 | Top projects announced | Congratulations! ([Twitch](https://www.twitch.tv/virtualmlnet) / [YouTube](https://www.youtube.com/watch?v=u7kzLUgCZvI)) 28 | 29 | ## Stream Links 30 | 31 | - [Twitch](https://www.twitch.tv/virtualmlnet) 32 | - [YouTube](https://www.youtube.com/channel/UClv1sloNF4mzWQiQbemHXRw) 33 | 34 | ## Create a project 35 | 36 | To create a project, create [an issue](https://github.com/virtualmlnet/hackathon-2020/issues/new?assignees=&labels=&template=idea.md&title=ML.NET+Hackathon+Idea) in this repository. In the issue put the details of the project and any relevant links to the data. 37 | 38 | *Note for the data, make sure the data doesn't include any personal information such as names, address, etc.* 39 | 40 | ## Joining an Existing Project 41 | 42 | If you want to join a project instead of starting on, comment on an [existing issue](https://github.com/virtualmlnet/hackathon-2021/issues/) that has a project you want to work on indicating you'd like to work on it. 43 | 44 | ## Final Submissions 45 | 46 | For final project submissions, send a pull request in the Submissions folder with your team name. For a sample submission, see the *submissions/Team1* directory in this repository. 47 | 48 | ## Useful resources 49 | 50 | - [Rules](Rules.md) 51 | - [Datasets](datasets.md) 52 | - [Project ideas](project-ideas.md) 53 | - [Frequently asked questions (FAQs)](FAQ.md) 54 | - [ML.NET Docs](https://docs.microsoft.com/dotnet/machine-learning/) 55 | - [ML.NET Samples](https://github.com/dotnet/machinelearning-samples) 56 | - [ML.NET Workshop](https://aka.ms/mlnet-workshop-content) 57 | 58 | ## Code of conduct 59 | 60 | By participating in this event, you agree to the [code of conduct](code-of-conduct.md). 61 | 62 | ## Questions? 63 | 64 | Join the `#hackathon` channel in the [Virtual ML.NET Discord](https://aka.ms/mlnet-hackathon-discord). 65 | -------------------------------------------------------------------------------- /Rules.md: -------------------------------------------------------------------------------- 1 | # Hackathon Rules 2 | 3 | - Have fun! 4 | - Anyone is welcome to participate 5 | - Must [create/register a project](https://github.com/virtualmlnet/hackathon-2020/issues/new?assignees=&labels=&template=idea.md&title=ML.NET+Hackathon+Idea) 6 | - You **MUST** work on **NEW** projects. Only new projects created on or after November 12 will be considered for submission. 7 | - You can create/join more than one project 8 | - **MUST** use ML .NET in some part of the project. 9 | - By participating in this event, you agree to follow the [code of conduct](code-of-conduct.md) 10 | 11 | ## Deliverables 12 | 13 | - 1-3 minute video showcasing your solution. Provide a link to your video. 14 | - Source code. Provide a link to your code. 15 | 16 | **Make sure that the video and source code are both publicly accessible.** 17 | 18 | See the [sample submission](submissions/Team-1/README.md) for reference on what your submissions should look like. -------------------------------------------------------------------------------- /code-of-conduct.md: -------------------------------------------------------------------------------- 1 | # Code of conduct 2 | 3 | To clarify the expected behavior in our community, this project/event has adopted to code of conduct defined by the [Contributor Covenant](https://www.contributor-covenant.org/). 4 | 5 | ## Contributor Covenant Code of Conduct 6 | 7 | ### Our Pledge 8 | 9 | We as members, contributors, and leaders pledge to make participation in our 10 | community a harassment-free experience for everyone, regardless of age, body 11 | size, visible or invisible disability, ethnicity, sex characteristics, gender 12 | identity and expression, level of experience, education, socio-economic status, 13 | nationality, personal appearance, race, religion, or sexual identity 14 | and orientation. 15 | 16 | We pledge to act and interact in ways that contribute to an open, welcoming, 17 | diverse, inclusive, and healthy community. 18 | 19 | ### Our Standards 20 | 21 | Examples of behavior that contributes to a positive environment for our 22 | community include: 23 | 24 | * Demonstrating empathy and kindness toward other people 25 | * Being respectful of differing opinions, viewpoints, and experiences 26 | * Giving and gracefully accepting constructive feedback 27 | * Accepting responsibility and apologizing to those affected by our mistakes, 28 | and learning from the experience 29 | * Focusing on what is best not just for us as individuals, but for the 30 | overall community 31 | 32 | Examples of unacceptable behavior include: 33 | 34 | * The use of sexualized language or imagery, and sexual attention or 35 | advances of any kind 36 | * Trolling, insulting or derogatory comments, and personal or political attacks 37 | * Public or private harassment 38 | * Publishing others' private information, such as a physical or email 39 | address, without their explicit permission 40 | * Other conduct which could reasonably be considered inappropriate in a 41 | professional setting 42 | 43 | ### Enforcement Responsibilities 44 | 45 | Community leaders are responsible for clarifying and enforcing our standards of 46 | acceptable behavior and will take appropriate and fair corrective action in 47 | response to any behavior that they deem inappropriate, threatening, offensive, 48 | or harmful. 49 | 50 | Community leaders have the right and responsibility to remove, edit, or reject 51 | comments, commits, code, wiki edits, issues, and other contributions that are 52 | not aligned to this Code of Conduct, and will communicate reasons for moderation 53 | decisions when appropriate. 54 | 55 | ### Scope 56 | 57 | This Code of Conduct applies within all community spaces, and also applies when 58 | an individual is officially representing the community in public spaces. 59 | Examples of representing our community include using an official e-mail address, 60 | posting via an official social media account, or acting as an appointed 61 | representative at an online or offline event. 62 | 63 | ### Enforcement 64 | 65 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 66 | reported to the community leaders responsible for enforcement at 67 | [virtualmlnet@gmail.com](mailto:virtualmlnet@gmail.com). 68 | All complaints will be reviewed and investigated promptly and fairly. 69 | 70 | All community leaders are obligated to respect the privacy and security of the 71 | reporter of any incident. 72 | 73 | ### Enforcement Guidelines 74 | 75 | Community leaders will follow these Community Impact Guidelines in determining 76 | the consequences for any action they deem in violation of this Code of Conduct: 77 | 78 | #### 1. Correction 79 | 80 | **Community Impact**: Use of inappropriate language or other behavior deemed 81 | unprofessional or unwelcome in the community. 82 | 83 | **Consequence**: A private, written warning from community leaders, providing 84 | clarity around the nature of the violation and an explanation of why the 85 | behavior was inappropriate. A public apology may be requested. 86 | 87 | #### 2. Warning 88 | 89 | **Community Impact**: A violation through a single incident or series 90 | of actions. 91 | 92 | **Consequence**: A warning with consequences for continued behavior. No 93 | interaction with the people involved, including unsolicited interaction with 94 | those enforcing the Code of Conduct, for a specified period of time. This 95 | includes avoiding interactions in community spaces as well as external channels 96 | like social media. Violating these terms may lead to a temporary or 97 | permanent ban. 98 | 99 | #### 3. Temporary Ban 100 | 101 | **Community Impact**: A serious violation of community standards, including 102 | sustained inappropriate behavior. 103 | 104 | **Consequence**: A temporary ban from any sort of interaction or public 105 | communication with the community for a specified period of time. No public or 106 | private interaction with the people involved, including unsolicited interaction 107 | with those enforcing the Code of Conduct, is allowed during this period. 108 | Violating these terms may lead to a permanent ban. 109 | 110 | #### 4. Permanent Ban 111 | 112 | **Community Impact**: Demonstrating a pattern of violation of community 113 | standards, including sustained inappropriate behavior, harassment of an 114 | individual, or aggression toward or disparagement of classes of individuals. 115 | 116 | **Consequence**: A permanent ban from any sort of public interaction within 117 | the community. 118 | 119 | ### Attribution 120 | 121 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 122 | version 2.0, available at 123 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 124 | 125 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 126 | enforcement ladder](https://github.com/mozilla/diversity). 127 | 128 | [homepage]: https://www.contributor-covenant.org 129 | 130 | For answers to common questions about this code of conduct, see the FAQ at 131 | https://www.contributor-covenant.org/faq. Translations are available at 132 | https://www.contributor-covenant.org/translations. -------------------------------------------------------------------------------- /datasets.md: -------------------------------------------------------------------------------- 1 | # Datasets 2 | 3 | This document contains a list of sources where you can find datasets for your project. You're also encouraged to bring your own! 4 | 5 | > **Note for the data, make sure it doesn't include any personal, private, or sensitive information such as names, address, etc.** 6 | 7 | - [UCI Machine Learning Repository](https://archive.ics.uci.edu/ml/datasets.php) 8 | - [Azure Open Datasets](https://azure.microsoft.com/en-us/services/open-datasets/) 9 | - [Microsoft Research Open Data](https://msropendata.com/) 10 | - [Kaggle Datasets](https://www.kaggle.com/datasets) 11 | - [Google Dataset Search](https://datasetsearch.research.google.com/) 12 | - [United States Data Portal](https://www.data.gov/) 13 | - [NYC Open Data](https://opendata.cityofnewyork.us/) 14 | - [Chicago Data Portal](https://data.cityofchicago.org/) 15 | - [San Francisco Open Data](https://datasf.org/opendata/) 16 | - [Seattle Data Portal](https://data.seattle.gov/) 17 | - [European Union Open Data Portal](https://data.europa.eu/euodp/en/data/) 18 | - [Australian Data Portal](https://data.gov.au/) 19 | - [New Zealand Data Portal](https://data.govt.nz/) 20 | - [India Open Data Portal](https://data.gov.in/) 21 | - [United States National Park Service Datasets](https://public-nps.opendata.arcgis.com/search) 22 | - [World Bank Open Data](https://data.worldbank.org/) 23 | - [Bank for International Settlements Datasets](https://www.bis.org/statistics/full_data_sets.htm) 24 | - [United Nations Dataset](http://data.un.org/) 25 | - [Harvard Dataverse](https://dataverse.harvard.edu/) 26 | - [NASA Open Data](https://www.nasa.gov/open/data.html) 27 | - [ESA Open Data](https://earth.esa.int/eogateway/) -------------------------------------------------------------------------------- /project-ideas.md: -------------------------------------------------------------------------------- 1 | # Project Ideas 2 | 3 | Use this document to give you ideas of the types of problems you can solve using Machine Learning and ML.NET. 4 | 5 | - Contribute to [ML.NET](https://github.com/dotnet/machinelearning) 6 | - Implement a new algorithm 7 | - Implement interpretability techniques 8 | - Build tooling 9 | - Contribute samples 10 | - Contribute to [.NET Interactive](https://github.com/dotnet/interactive) 11 | - Build ML.NET specific extensions 12 | - Contribute to [MLOps.NET](https://github.com/aslotte/MLOps.NET) 13 | - Add interpretability capabilities 14 | - Contribute to [TensorFlow.NET](https://github.com/SciSharp/TensorFlow.NET) 15 | - Integrate object detection API with ML.NET 16 | - Contribute to [TorchSharp](https://github.com/xamarin/TorchSharp) 17 | - Integrate it with ML.NET 18 | - ML.NET powered virtual agent / chatbot 19 | - Forecast sales 20 | - Predictive maintenance 21 | - Automated visual inspection 22 | - Recognize digits 23 | - Handwritten equation solver 24 | - Facial recognition to detect mood 25 | - Social media post sentiment analysis 26 | 27 | You can also reference last year's [submissions](https://github.com/virtualmlnet/hackathon-2020/tree/main/submissions). 28 | 29 | Ready to get started? [Create a project](https://github.com/virtualmlnet/hackathon-2020/issues/new?assignees=&labels=&template=idea.md&title=ML.NET+Hackathon+Idea). -------------------------------------------------------------------------------- /submissions/GymRogueOne/License.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/virtualmlnet/hackathon-2021/c894f02e3ba35db23bf1fe4d02a9fe80501e1dda/submissions/GymRogueOne/License.txt -------------------------------------------------------------------------------- /submissions/GymRogueOne/ReadMe.md: -------------------------------------------------------------------------------- 1 | # GymRogueOne Team 2 | 3 | ## Idea 4 | Our aim is to provide a workflow from PyTorch OpenAI Gym [reinforcement learning (RL)] to ML.NET. OpenAI Gym is a popular toolkit for developing and comparing reinforcement learning algorithms. Our approach is to export ONNX from a trained python RL openAI gym model and use ML.NET to consume that ONNX. 5 | 6 | We use Godot as our 3D engine. So far, only a few attempts of developing RL using Godot. Almost all of them involves Godot as a client communicating to a **python server** running the RL service. 7 | 8 | For PoC, we use [GymGodot](https://github.com/HugoTini/GymGodot), which comes with an interesting [mars landing example](https://github.com/HugoTini/GymGodot/blob/main/gym-godot/examples/mars_lander/mars_lander.md) 9 | 10 | Figure 1: GymGodot involves godot as client with a python server serving RL 11 | 12 | ![image](https://user-images.githubusercontent.com/49812372/142352433-77ee5cf1-a502-485a-a7d5-c6d16daaa114.png) 13 | 14 | 15 | ## Challenge 16 | **Our challenge** is to do RL in Godot using ML.NET as inference engine **without using any (python/.NET) server**. 17 | 18 | Figure 2: GymRogueOne implementation involves **one** single application 19 | ![image](https://user-images.githubusercontent.com/49812372/142351131-c5cd4a00-a0bd-4ee5-bc89-e86975011e65.png) 20 | 21 | - First we need to train and create RL model in our chosen OS: Windows. 22 | 23 | - The provided solution runs only in Linux and the RL training is done through the provided python scripts (e.g. learn.py). It took some hacking of these scripts to make them run in Windows. 24 | 25 | - Second, the python server is replaced with a .NET Web Socket server using the same messaging interface as that provided by the python RL server. 26 | 27 | - The trained PyTorch RL model is [exported to ONNX](https://stable-baselines3.readthedocs.io/en/master/guide/export.html) using the following [codes](https://github.com/JimFFM/ml-hackathon-2021/blob/main/PyTorchTrainingONNXExport/Readme_ExportOnnx.md) 28 | - ML.NET consumes the ONNX and provide the RL inference service of the server. 29 | 30 | - Third, the provided GymGodot's rocket model is replaced with [a SpaceX Starship model](https://skfb.ly/6QWPo) by MartianDays under [Creative Commons Attribution](http://creativecommons.org/licenses/by/4.0/) 31 | 32 | ## Team contact 33 | For questions on this submission you can contact: Jim SEOW: JimFFM@outlook.com 34 | 35 | Team members 36 | - [Jim SEOW](https://github.com/JimFFM) 37 | - [Shehroze Malik](https://github.com/shehrozeee) => who did most of the coding 38 | - [Praveen Raghuvanshi](https://github.com/praveenraghuvanshi) 39 | 40 | ## Solution 41 | 42 | Full Sorce Code: https://github.com/JimFFM/ml-hackathon-2021/ 43 | 44 | ## Video 45 | 46 | Landing SpaceX Startship on Mars using OpenAI Gym reinforcement learning provided through ML.NET 47 | 48 | 49 | ![uzYkLCgQH1](https://user-images.githubusercontent.com/49812372/142352894-265045b1-69ec-4b7e-b8df-ece0b3dd408a.gif) 50 | 51 | ## PowerPoint 52 | 53 | https://github.com/JimFFM/ml-hackathon-2021/blob/main/Doc/mlnet_findings.pptx 54 | -------------------------------------------------------------------------------- /submissions/GymRogueOne/Team.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/virtualmlnet/hackathon-2021/c894f02e3ba35db23bf1fe4d02a9fe80501e1dda/submissions/GymRogueOne/Team.txt -------------------------------------------------------------------------------- /submissions/Team-1/README.md: -------------------------------------------------------------------------------- 1 | ## Team ML.NET to the moon and back! 2 | 3 | ### Idea 4 | We thought it would be fun to... 5 | 6 | ### Team contact 7 | For questions on this submission you can contact: 8 | John Taylor: john.taylor@someemail.com 9 | 10 | ### Solution 11 | We solved this problem by... 12 | 13 | ### Video presentation 14 | We've uploaded the video presentation to dropbox/google drive... -------------------------------------------------------------------------------- /submissions/Team-InfraClassify/README.md: -------------------------------------------------------------------------------- 1 | ## Team InfraClassify 2 | 3 | ### Idea 4 | I thought it would be fun to figure out different ways in .Net to make predictions from models that were built with Model Builder in Visual Studio. 5 | 6 | ### Team contact 7 | For questions on this submission you can contact: 8 | Sam D: dsaeresearch@gmail.com 9 | 10 | ### Solution 11 | I was able to figure out that there are plenty of ways in .NET to make predictions from models made my Model Builder. I was able to call it from web apps, console apps, and web apis. 12 | The code can be found here https://github.com/mrsadengineer/InfraClassify 13 | 14 | ### Video presentation 15 | We've uploaded the video presentation to Youtube. https://youtu.be/LwYrERk8Rsg 16 | -------------------------------------------------------------------------------- /submissions/dayo05/readme.md: -------------------------------------------------------------------------------- 1 | # Dayo team 2 | 3 | ## Idea 4 | There are a lot of files that makes Pytorch to easier for beginners. For example, in pytorch, 5 | ```python 6 | mnist_train = dsets.MNIST(root='MNIST_data/', 7 | train=True, 8 | transform=transforms.ToTensor(), 9 | download=True) 10 | 11 | mnist_test = dsets.MNIST(root='MNIST_data/', 12 | train=False, 13 | transform=transforms.ToTensor(), 14 | download=True) 15 | ``` 16 | It is very easy to load test datas. 17 | 18 | But in torchsharp, there are nothing has included. And you are required to create mini-batch manualy to use mini batch. 19 | 20 | ## What I did 21 | 22 | C# contains IEnumerable interface which makes load data more easier and I make dataloader class for universal datas, As similar as `torch.utils.data` in pytorch. 23 | 24 | This repo is my project which was created for virtual ml.net hackertoon, 25 | 26 | https://github.com/dayo05/TorchDataLoader 27 | 28 | I use fruits360 datasets for test my dataloder but somethings are wrong on testing... (This is the first project of ml without tutorials, I'm waiting for help!) 29 | 30 | Fruit360 class is the example of using my dataloader. 31 | 32 | ```cs 33 | var trainData = new Fruit360(); 34 | var testData = new Fruit360(train: false); 35 | Console.WriteLine($"Train data: {trainData.Count()}"); 36 | Console.WriteLine($"Test data: {testData.Count()}"); 37 | 38 | var train = new DataLoader(trainData, 32, true, torch.CUDA); 39 | var test = new DataLoader(testData, 64, false, torch.CUDA); 40 | Console.WriteLine($"Train batch count: {train.Count}"); 41 | Console.WriteLine($"Test batch Count: {test.Count}"); 42 | ``` 43 | 44 | This is example for calling my dataloader, It is similar as what pytorch does. 45 | 46 | ## Thank you everyone, My project is just start, I'll keep going studying about it and In next year, I'll make more better project on this hackertoon :D 47 | 48 | ps. I'm learning about VGG models, in now, my model is not working but I'll make that works fine soon! 49 | --------------------------------------------------------------------------------