In depth study of the CNTK Readers is what I recommend!
@Stanislav Grigorev is correct.
The Input Dimensions is entirely dependant on your Dataset. For example, the ATIS in the example here, looks like this:

The code example can be found here.
Data is read in with the reader:
IList<StreamConfiguration> streamConfigurations = new StreamConfiguration[]
{
new StreamConfiguration(featuresName, inputDim, true, "S0"),
// new StreamConfiguration(featuresName, inputDim, true, "S1"), // Not used in the old example.
new StreamConfiguration(labelsName, numOutputClasses, false, "S2")
};
and the reading with the TextFormatMinibatchSource:
var minibatchSource = MinibatchSource.TextFormatMinibatchSource(
Path.Combine(DataFolder, "Train.ctf"),
streamConfigurations,
MinibatchSource.InfinitelyRepeat,
true);
var featureStreamInfo = minibatchSource.StreamInfo(featuresName);
var labelStreamInfo = minibatchSource.StreamInfo(labelsName);
then the line, in the while loop:
var minibatchData = minibatchSource.GetNextMinibatch(minibatchSize, device);
Reads each minibatch. This is all obvious to anyone reading the code, but to illustrate the way the data is read in, I have provided this example.
The Dataset Parameters are given in the code example:
const int inputDim = 2000;
const int numOutputClasses = 5;
It is important these numbers are correct!
I have started a website: http://www.cntking.com/ to try to get the ball rolling on C# and CNTK, I think its a very underestimated Language C# for Machine Learning.