<|im_start|>system
You need to solve a machine learning task.
<|im_end|>
<|im_start|>user
First outline your proposed solution in natural language (3-5 sentences), followed by a single markdown code block (wrapped in ```) which implements this solution. Note:

- Datasets are available in `/workdir/plant-pathology-2020-fgvc7/prepared/public/`.
- Your task is to train a model using images of training dataset to predict probabilities for healthy, multiple_diseases, rust, and scab classes for each image in the test.csv.
- Submissions are evaluated on mean column-wise ROC AUC across the four target columns.
- You should import packages such as: `pandas`, `PIL`, `torch`, `torchvision`, `sklearn`, `numpy`.
- You can't access the internet so don't use any pre-trained models need downloading.
- You MUST print progress using the following:
```
print("loaded data")
print("defined model")
print("training loss:")
print("trained model")
print("predicted test labels")
```
Only print AFTER an operation is actually performed (e.g., data have actually been loaded). Do NOT print directly.
- Your code should produce a submission file at `./submission.csv` by running your model on the test split. The file should have the following format:
```
image_id,healthy,multiple_diseases,rust,scab
test_0,0.25,0.25,0.25,0.25
test_1,0.25,0.25,0.25,0.25
etc.
```
- Files:
`/workdir/plant-pathology-2020-fgvc7/prepared/public/train.csv` has 5 columns.
- `image_id`: the foreign key
- 4 target labels: `healthy`, `multiple_diseases`, `rust`, `scab`
`/workdir/plant-pathology-2020-fgvc7/prepared/public/images/` is a folder containing the train and test images, in jpg format. Note that the raw images are in the images folder not in `train.csv` or `test.csv`.
`/workdir/plant-pathology-2020-fgvc7/prepared/public/test.csv` only has 1 column: `image_id`
Here's an example of how to load an image from the training dataset and convert it to RGB format:
```
import pandas as pd
from PIL import Image

img_name = pd.read_csv("/workdir/plant-pathology-2020-fgvc7/prepared/public/train.csv").iloc[0]['image_id']
img_name = "/workdir/plant-pathology-2020-fgvc7/prepared/public/images/" + img_name + ".jpg"
image = Image.open(img_name).convert("RGB")

```
Here's an example of loading the labels for a training data point:
```
import pandas as pd
import torch

train_file = pd.read_csv("/workdir/plant-pathology-2020-fgvc7/prepared/public/train.csv")
labels = torch.tensor(train_file.iloc[0, 1:].values.astype(np.float32))
```
- Note:
Double check that you imported all the packages used. Define every variable used. Make sure that you generate a `./submission.csv` where you have predictions for each image_id in `/workdir/plant-pathology-2020-fgvc7/prepared/public/test.csv`. Do not generate a submission file for any other data splits.
<|im_end|>
<|im_start|>assistant
