This repository has been archived by the owner on Mar 12, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 83
Image Classification using CNN #38
Comments
Thanks for your appreciation. I see the issue is there, I will check the
issue and try to fix it.
Regards,
Deepak
…On Mon, Sep 24, 2018 at 4:48 PM malhosary ***@***.***> wrote:
Hi,
Thank you for the great work you did. I have the following simple CNN for
image classification:
`
featureShape = new Shape(new int[] { imageWidth, imageHeight, 3 });
var inputShape = new Shape(new int[] { imageWidth, imageHeight, 3 });
frameX = new DataFrame(featureShape);
labelShape = new Shape(new int[] { 3 });
frameY = new DataFrame(labelShape);
model = new Sequential(inputShape);
model.Add(new Conv2D(16, Tuple.Create(3, 3), Tuple.Create(2, 2), activation: new ReLU(), weightInitializer: new SiaNet.Model.Initializers.Xavier(), useBias: true, biasInitializer: new Model.Initializers.Ones()));
model.Add(new MaxPool2D(Tuple.Create(3, 3)));
model.Add(new Conv2D(32, Tuple.Create(3, 3), Tuple.Create(2, 2), activation: new ReLU(), weightInitializer: new SiaNet.Model.Initializers.Xavier(), useBias: true, biasInitializer: new Model.Initializers.Ones()));
model.Add(new MaxPool2D(Tuple.Create(3, 3)));
model.Add(new Flatten());
model.Add(new Dense(200, activation: new ReLU()));
// model.Add(new Dropout(0.5));
model.Add(new Dense(3, activation: new Softmax()));
var compiledModel = model.Compile();
compiledModel.EpochEnd += CompiledModel_EpochEnd;
compiledModel.BatchStart += CompiledModel_BatchStart;
compiledModel.BatchEnd += CompiledModel_BatchEnd;
compiledModel.TrainingStart += CompiledModel_TrainingStart1;
compiledModel.TrainingEnd += CompiledModel_TrainingEnd1;
// prepare dataset
trainingData = new DataFrameList(featureShape, labelShape);
PrepareDataSet2(@"C:\Authorized Model\Keras Dataset\Fire\", new float[] { 1,0,0 }, true);
PrepareDataSet2(@"C:\Authorized Model\Keras Dataset\Person\", new float[] { 0, 1, 0 }, true);
PrepareDataSet2(@"C:\Authorized Model\Keras Dataset\Police\", new float[] { 0,0,1 }, true);
compiledModel.Fit(trainingData, 40, 150, new Adam(), new CrossEntropy());
and the PrepareDataSet2 method:
static void PrepareDataSet2(string folderName, float[] classLabel, bool train = true)
{
int width = int.Parse(ConfigurationManager.AppSettings["ImageWidth"]);
int height = int.Parse(ConfigurationManager.AppSettings["ImageHeight"]);
Console.WriteLine("Loading dataset for class: " + classLabel);
var files = Directory.EnumerateFiles(folderName, "*.*", SearchOption.AllDirectories)
.Where(s => s.ToLower().EndsWith(".jpeg") || s.ToLower().EndsWith(".jpg") || s.ToLower().EndsWith(".bmp") || s.ToLower().EndsWith(".png") || s.ToLower().EndsWith(".gif"));
foreach (var file in files)
{
using (Bitmap full = (Bitmap)Bitmap.FromFile(file))
{
using (Bitmap bt = full.Resize(width, height, true))
{
float[] imgMatrix = bt.ParallelExtractCHW().ToArray();
//float[] imgMatrix = bt.ToByteArray().ToArray().Select(d => (float)d).ToArray();
if (imgMatrix.All(d => d == 0))
{
throw new Exception("All values in the image re 0!!");
}
//frameX.Add(imgMatrix);
if (train)
{
trainingData.AddFrame(imgMatrix, classLabel);
}
else
{
frameX.Add(imgMatrix);
}
}
}
}
Console.WriteLine("Finished loading dataset for class: " + classLabel);
}
`
The issue is: i do training for this CNN and i use Predict method to do
classification for new images but i always get the same result for
prediction (0,0,1).
Appreciate your support?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#38>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/AGCQKQ3wtIB2ogmDUOk3RZ3-5jAHe8eZks5ueIcpgaJpZM4W2KLt>
.
--
Regards,
Deepak
|
@deepakkumar1984 Thank you for your quick response, very appreciated. |
I have modified the SiaNet rewriting from Scratch. Can you please share me your code so that I can test the scenario. |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Hi,
Thank you for the great work you did. I have the following simple CNN for image classification:
`
featureShape = new Shape(new int[] { imageWidth, imageHeight, 3 });
var inputShape = new Shape(new int[] { imageWidth, imageHeight, 3 });
frameX = new DataFrame(featureShape);
var compiledModel = model.Compile();
compiledModel.EpochEnd += CompiledModel_EpochEnd;
compiledModel.BatchStart += CompiledModel_BatchStart;
compiledModel.BatchEnd += CompiledModel_BatchEnd;
compiledModel.TrainingStart += CompiledModel_TrainingStart1;
compiledModel.TrainingEnd += CompiledModel_TrainingEnd1;
and the PrepareDataSet2 method:
`
The issue is: i do training for this CNN and i use Predict method to do classification for new images but i always get the same result for prediction (0,0,1).
Appreciate your support?
The text was updated successfully, but these errors were encountered: