CNN reshape problem2019 Community Moderator ElectionUnderstanding cnnHow can this CNN for the portfolio management problem be implemented in keras?Batch data before feed into CNN networkHow filters are made in a CNN?Value error in Merging two different models in kerasValue of loss and accuracy does not change over EpochsUsing categorial_crossentropy to train a model in kerasKeras Attention Guided CNN problemGenerating image embedding using CNNPivot reshape dataframe

If human space travel is limited by the G force vulnerability, is there a way to counter G forces?

Can a virus destroy the BIOS of a modern computer?

Dealing with conflict between co-workers for non-work-related issue affecting their work

Why was the shrinking from 8″ made only to 5.25″ and not smaller (4″ or less)?

Why is this clock signal connected to a capacitor to gnd?

Is there an expression that means doing something right before you will need it rather than doing it in case you might need it?

ssTTsSTtRrriinInnnnNNNIiinngg

What is the intuition behind short exact sequences of groups; in particular, what is the intuition behind group extensions?

How do conventional missiles fly?

Neighboring nodes in the network

What is the difference between 仮定 and 想定?

Does casting Light, or a similar spell, have any effect when the caster is swallowed by a monster?

What do you call someone who asks many questions?

What exploit are these user agents trying to use?

What's the point of deactivating Num Lock on login screens?

Is it inappropriate for a student to attend their mentor's dissertation defense?

Fully-Firstable Anagram Sets

Is there a hemisphere-neutral way of specifying a season?

Why would the Red Woman birth a shadow if she worshipped the Lord of the Light?

How can I prevent hyper evolved versions of regular creatures from wiping out their cousins?

Ambiguity in the definition of entropy

One verb to replace 'be a member of' a club

What about the virus in 12 Monkeys?

Is there a way of "bevelling" a single vertex?



CNN reshape problem



2019 Community Moderator ElectionUnderstanding cnnHow can this CNN for the portfolio management problem be implemented in keras?Batch data before feed into CNN networkHow filters are made in a CNN?Value error in Merging two different models in kerasValue of loss and accuracy does not change over EpochsUsing categorial_crossentropy to train a model in kerasKeras Attention Guided CNN problemGenerating image embedding using CNNPivot reshape dataframe










1












$begingroup$


I am new to CNN and i want to use it for Modulation classification
I found this code and I want to replicate it as it is exept that i only used the digital modulations and some SNR (signal-Noise Ratio) levels



import os
import theano as th
import theano.tensor as T
os.environ["KERAS_BACKEND"] = "theano"
#os.environ["KERAS_BACKEND"] = "tensorflow"
os.environ["THEANO_FLAGS"] = "device=gpu%d"%(1)
import numpy as np
import keras.models as models
from keras.layers.core import Reshape,Dense,Dropout,Activation,Flatten
from keras.layers.convolutional import Convolution2D, ZeroPadding2D, Conv2D
import pickle, keras

full_dataset = pickle.load(open("RML2016.10a.pkl",'rb'),encoding='latin1')
snrs,mods = map(lambda j: sorted(list(set(map(lambda x: x[j], full_dataset.keys())))), [1,0])

digital_mods = ['8PSK', 'BPSK', 'CPFSK', 'GFSK', 'PAM4', 'QAM16', 'QAM64', 'QPSK']
snr_levels = [-16, -12, -8, -4, 0, 4, 8, 12, 16]

X = []
lbl = []
for mod in digital_mods:
for snr in snr_levels:
X.append(full_dataset[(mod,snr)])
for i in range(full_dataset[(mod,snr)].shape[0]): lbl.append((mod,snr))
X = np.vstack(X)

np.random.seed(2016)
n_examples = X.shape[0]
n_train = int(n_examples * 0.5)
train_idx = np.random.choice(range(0,n_examples), size=n_train, replace=False)
test_idx = list(set(range(0,n_examples))-set(train_idx))
X_train = X[train_idx]
X_test = X[test_idx]
def to_onehot(yy):
yy1 = np.zeros([len(yy), max(yy)+1])
yy1[np.arange(len(yy)),yy] = 1
return yy1
Y_train = to_onehot(list(map(lambda x: mods.index(lbl[x][0]), train_idx)))
Y_test = to_onehot(list(map(lambda x: mods.index(lbl[x][0]), test_idx)))

in_shp = list(X_train.shape[1:])
classes = digital_mods

nb_epoch = 100 # number of epochs to train on
batch_size = 1024
dr = 0.5
model = models.Sequential()
model.add(Reshape(in_shp+[1], input_shape=in_shp))
model.add(ZeroPadding2D((0,2)))
model.add(Conv2D(64, (1,4), activation="relu"))
model.add(Dropout(dr))
model.add(ZeroPadding2D((0,2)))
model.add(Conv2D(64, (2,4), activation="relu"))
model.add(Dropout(dr))
model.add(Conv2D(128, (1,8), activation="relu"))
model.add(Dropout(dr))
model.add(Conv2D(128, (1,8), activation="relu"))
model.add(Dropout(dr))
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dropout(dr))
model.add(Dense(len(classes), activation='softmax'))
model.add(Reshape([len(classes)]))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()


filepath = 'weight_4layers.wts.h5'
history = model.fit(X_train,
Y_train,
batch_size=batch_size,
nb_epoch=nb_epoch,
verbose=1,
validation_data=(X_test, Y_test),
callbacks = [
keras.callbacks.ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=True, mode='auto'),
keras.callbacks.EarlyStopping(monitor='val_loss', patience=5, verbose=0, mode='auto')
])


please note the following:



I have 8 modulation types and 9 SNR levels = 72 pairs [mod,snr]
each paire is composed of 1000 array of [2, 128] (complex values of radio signal)



X train has the shape (36000, 2, 128)
in_shape has the shape (2, 128)



So when i run my program I get the following error:



Traceback (most recent call last):
File "/home/nechi/PycharmProjects/AMC/cnn.py", line 88, in <module>
keras.callbacks.EarlyStopping(monitor='val_loss', patience=5, verbose=0, mode='auto')
File "/usr/local/lib/python3.6/dist-packages/keras/engine/training.py", line 952, in fit
batch_size=batch_size)
File "/usr/local/lib/python3.6/dist-packages/keras/engine/training.py", line 789, in _standardize_user_data
exception_prefix='target')
File "/usr/local/lib/python3.6/dist-packages/keras/engine/training_utils.py", line 138, in standardize_input_data
str(data_shape))
ValueError: Error when checking target: expected reshape_2 to have shape (8,) but got array with shape (10,)









share|improve this question









$endgroup$











  • $begingroup$
    did you try to convert your labels to categorical (one hot)? or you use 'sparse_categorical_crossentropy' as your loss function.
    $endgroup$
    – honar.cs
    Mar 26 at 20:07















1












$begingroup$


I am new to CNN and i want to use it for Modulation classification
I found this code and I want to replicate it as it is exept that i only used the digital modulations and some SNR (signal-Noise Ratio) levels



import os
import theano as th
import theano.tensor as T
os.environ["KERAS_BACKEND"] = "theano"
#os.environ["KERAS_BACKEND"] = "tensorflow"
os.environ["THEANO_FLAGS"] = "device=gpu%d"%(1)
import numpy as np
import keras.models as models
from keras.layers.core import Reshape,Dense,Dropout,Activation,Flatten
from keras.layers.convolutional import Convolution2D, ZeroPadding2D, Conv2D
import pickle, keras

full_dataset = pickle.load(open("RML2016.10a.pkl",'rb'),encoding='latin1')
snrs,mods = map(lambda j: sorted(list(set(map(lambda x: x[j], full_dataset.keys())))), [1,0])

digital_mods = ['8PSK', 'BPSK', 'CPFSK', 'GFSK', 'PAM4', 'QAM16', 'QAM64', 'QPSK']
snr_levels = [-16, -12, -8, -4, 0, 4, 8, 12, 16]

X = []
lbl = []
for mod in digital_mods:
for snr in snr_levels:
X.append(full_dataset[(mod,snr)])
for i in range(full_dataset[(mod,snr)].shape[0]): lbl.append((mod,snr))
X = np.vstack(X)

np.random.seed(2016)
n_examples = X.shape[0]
n_train = int(n_examples * 0.5)
train_idx = np.random.choice(range(0,n_examples), size=n_train, replace=False)
test_idx = list(set(range(0,n_examples))-set(train_idx))
X_train = X[train_idx]
X_test = X[test_idx]
def to_onehot(yy):
yy1 = np.zeros([len(yy), max(yy)+1])
yy1[np.arange(len(yy)),yy] = 1
return yy1
Y_train = to_onehot(list(map(lambda x: mods.index(lbl[x][0]), train_idx)))
Y_test = to_onehot(list(map(lambda x: mods.index(lbl[x][0]), test_idx)))

in_shp = list(X_train.shape[1:])
classes = digital_mods

nb_epoch = 100 # number of epochs to train on
batch_size = 1024
dr = 0.5
model = models.Sequential()
model.add(Reshape(in_shp+[1], input_shape=in_shp))
model.add(ZeroPadding2D((0,2)))
model.add(Conv2D(64, (1,4), activation="relu"))
model.add(Dropout(dr))
model.add(ZeroPadding2D((0,2)))
model.add(Conv2D(64, (2,4), activation="relu"))
model.add(Dropout(dr))
model.add(Conv2D(128, (1,8), activation="relu"))
model.add(Dropout(dr))
model.add(Conv2D(128, (1,8), activation="relu"))
model.add(Dropout(dr))
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dropout(dr))
model.add(Dense(len(classes), activation='softmax'))
model.add(Reshape([len(classes)]))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()


filepath = 'weight_4layers.wts.h5'
history = model.fit(X_train,
Y_train,
batch_size=batch_size,
nb_epoch=nb_epoch,
verbose=1,
validation_data=(X_test, Y_test),
callbacks = [
keras.callbacks.ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=True, mode='auto'),
keras.callbacks.EarlyStopping(monitor='val_loss', patience=5, verbose=0, mode='auto')
])


please note the following:



I have 8 modulation types and 9 SNR levels = 72 pairs [mod,snr]
each paire is composed of 1000 array of [2, 128] (complex values of radio signal)



X train has the shape (36000, 2, 128)
in_shape has the shape (2, 128)



So when i run my program I get the following error:



Traceback (most recent call last):
File "/home/nechi/PycharmProjects/AMC/cnn.py", line 88, in <module>
keras.callbacks.EarlyStopping(monitor='val_loss', patience=5, verbose=0, mode='auto')
File "/usr/local/lib/python3.6/dist-packages/keras/engine/training.py", line 952, in fit
batch_size=batch_size)
File "/usr/local/lib/python3.6/dist-packages/keras/engine/training.py", line 789, in _standardize_user_data
exception_prefix='target')
File "/usr/local/lib/python3.6/dist-packages/keras/engine/training_utils.py", line 138, in standardize_input_data
str(data_shape))
ValueError: Error when checking target: expected reshape_2 to have shape (8,) but got array with shape (10,)









share|improve this question









$endgroup$











  • $begingroup$
    did you try to convert your labels to categorical (one hot)? or you use 'sparse_categorical_crossentropy' as your loss function.
    $endgroup$
    – honar.cs
    Mar 26 at 20:07













1












1








1





$begingroup$


I am new to CNN and i want to use it for Modulation classification
I found this code and I want to replicate it as it is exept that i only used the digital modulations and some SNR (signal-Noise Ratio) levels



import os
import theano as th
import theano.tensor as T
os.environ["KERAS_BACKEND"] = "theano"
#os.environ["KERAS_BACKEND"] = "tensorflow"
os.environ["THEANO_FLAGS"] = "device=gpu%d"%(1)
import numpy as np
import keras.models as models
from keras.layers.core import Reshape,Dense,Dropout,Activation,Flatten
from keras.layers.convolutional import Convolution2D, ZeroPadding2D, Conv2D
import pickle, keras

full_dataset = pickle.load(open("RML2016.10a.pkl",'rb'),encoding='latin1')
snrs,mods = map(lambda j: sorted(list(set(map(lambda x: x[j], full_dataset.keys())))), [1,0])

digital_mods = ['8PSK', 'BPSK', 'CPFSK', 'GFSK', 'PAM4', 'QAM16', 'QAM64', 'QPSK']
snr_levels = [-16, -12, -8, -4, 0, 4, 8, 12, 16]

X = []
lbl = []
for mod in digital_mods:
for snr in snr_levels:
X.append(full_dataset[(mod,snr)])
for i in range(full_dataset[(mod,snr)].shape[0]): lbl.append((mod,snr))
X = np.vstack(X)

np.random.seed(2016)
n_examples = X.shape[0]
n_train = int(n_examples * 0.5)
train_idx = np.random.choice(range(0,n_examples), size=n_train, replace=False)
test_idx = list(set(range(0,n_examples))-set(train_idx))
X_train = X[train_idx]
X_test = X[test_idx]
def to_onehot(yy):
yy1 = np.zeros([len(yy), max(yy)+1])
yy1[np.arange(len(yy)),yy] = 1
return yy1
Y_train = to_onehot(list(map(lambda x: mods.index(lbl[x][0]), train_idx)))
Y_test = to_onehot(list(map(lambda x: mods.index(lbl[x][0]), test_idx)))

in_shp = list(X_train.shape[1:])
classes = digital_mods

nb_epoch = 100 # number of epochs to train on
batch_size = 1024
dr = 0.5
model = models.Sequential()
model.add(Reshape(in_shp+[1], input_shape=in_shp))
model.add(ZeroPadding2D((0,2)))
model.add(Conv2D(64, (1,4), activation="relu"))
model.add(Dropout(dr))
model.add(ZeroPadding2D((0,2)))
model.add(Conv2D(64, (2,4), activation="relu"))
model.add(Dropout(dr))
model.add(Conv2D(128, (1,8), activation="relu"))
model.add(Dropout(dr))
model.add(Conv2D(128, (1,8), activation="relu"))
model.add(Dropout(dr))
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dropout(dr))
model.add(Dense(len(classes), activation='softmax'))
model.add(Reshape([len(classes)]))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()


filepath = 'weight_4layers.wts.h5'
history = model.fit(X_train,
Y_train,
batch_size=batch_size,
nb_epoch=nb_epoch,
verbose=1,
validation_data=(X_test, Y_test),
callbacks = [
keras.callbacks.ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=True, mode='auto'),
keras.callbacks.EarlyStopping(monitor='val_loss', patience=5, verbose=0, mode='auto')
])


please note the following:



I have 8 modulation types and 9 SNR levels = 72 pairs [mod,snr]
each paire is composed of 1000 array of [2, 128] (complex values of radio signal)



X train has the shape (36000, 2, 128)
in_shape has the shape (2, 128)



So when i run my program I get the following error:



Traceback (most recent call last):
File "/home/nechi/PycharmProjects/AMC/cnn.py", line 88, in <module>
keras.callbacks.EarlyStopping(monitor='val_loss', patience=5, verbose=0, mode='auto')
File "/usr/local/lib/python3.6/dist-packages/keras/engine/training.py", line 952, in fit
batch_size=batch_size)
File "/usr/local/lib/python3.6/dist-packages/keras/engine/training.py", line 789, in _standardize_user_data
exception_prefix='target')
File "/usr/local/lib/python3.6/dist-packages/keras/engine/training_utils.py", line 138, in standardize_input_data
str(data_shape))
ValueError: Error when checking target: expected reshape_2 to have shape (8,) but got array with shape (10,)









share|improve this question









$endgroup$




I am new to CNN and i want to use it for Modulation classification
I found this code and I want to replicate it as it is exept that i only used the digital modulations and some SNR (signal-Noise Ratio) levels



import os
import theano as th
import theano.tensor as T
os.environ["KERAS_BACKEND"] = "theano"
#os.environ["KERAS_BACKEND"] = "tensorflow"
os.environ["THEANO_FLAGS"] = "device=gpu%d"%(1)
import numpy as np
import keras.models as models
from keras.layers.core import Reshape,Dense,Dropout,Activation,Flatten
from keras.layers.convolutional import Convolution2D, ZeroPadding2D, Conv2D
import pickle, keras

full_dataset = pickle.load(open("RML2016.10a.pkl",'rb'),encoding='latin1')
snrs,mods = map(lambda j: sorted(list(set(map(lambda x: x[j], full_dataset.keys())))), [1,0])

digital_mods = ['8PSK', 'BPSK', 'CPFSK', 'GFSK', 'PAM4', 'QAM16', 'QAM64', 'QPSK']
snr_levels = [-16, -12, -8, -4, 0, 4, 8, 12, 16]

X = []
lbl = []
for mod in digital_mods:
for snr in snr_levels:
X.append(full_dataset[(mod,snr)])
for i in range(full_dataset[(mod,snr)].shape[0]): lbl.append((mod,snr))
X = np.vstack(X)

np.random.seed(2016)
n_examples = X.shape[0]
n_train = int(n_examples * 0.5)
train_idx = np.random.choice(range(0,n_examples), size=n_train, replace=False)
test_idx = list(set(range(0,n_examples))-set(train_idx))
X_train = X[train_idx]
X_test = X[test_idx]
def to_onehot(yy):
yy1 = np.zeros([len(yy), max(yy)+1])
yy1[np.arange(len(yy)),yy] = 1
return yy1
Y_train = to_onehot(list(map(lambda x: mods.index(lbl[x][0]), train_idx)))
Y_test = to_onehot(list(map(lambda x: mods.index(lbl[x][0]), test_idx)))

in_shp = list(X_train.shape[1:])
classes = digital_mods

nb_epoch = 100 # number of epochs to train on
batch_size = 1024
dr = 0.5
model = models.Sequential()
model.add(Reshape(in_shp+[1], input_shape=in_shp))
model.add(ZeroPadding2D((0,2)))
model.add(Conv2D(64, (1,4), activation="relu"))
model.add(Dropout(dr))
model.add(ZeroPadding2D((0,2)))
model.add(Conv2D(64, (2,4), activation="relu"))
model.add(Dropout(dr))
model.add(Conv2D(128, (1,8), activation="relu"))
model.add(Dropout(dr))
model.add(Conv2D(128, (1,8), activation="relu"))
model.add(Dropout(dr))
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dropout(dr))
model.add(Dense(len(classes), activation='softmax'))
model.add(Reshape([len(classes)]))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()


filepath = 'weight_4layers.wts.h5'
history = model.fit(X_train,
Y_train,
batch_size=batch_size,
nb_epoch=nb_epoch,
verbose=1,
validation_data=(X_test, Y_test),
callbacks = [
keras.callbacks.ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=True, mode='auto'),
keras.callbacks.EarlyStopping(monitor='val_loss', patience=5, verbose=0, mode='auto')
])


please note the following:



I have 8 modulation types and 9 SNR levels = 72 pairs [mod,snr]
each paire is composed of 1000 array of [2, 128] (complex values of radio signal)



X train has the shape (36000, 2, 128)
in_shape has the shape (2, 128)



So when i run my program I get the following error:



Traceback (most recent call last):
File "/home/nechi/PycharmProjects/AMC/cnn.py", line 88, in <module>
keras.callbacks.EarlyStopping(monitor='val_loss', patience=5, verbose=0, mode='auto')
File "/usr/local/lib/python3.6/dist-packages/keras/engine/training.py", line 952, in fit
batch_size=batch_size)
File "/usr/local/lib/python3.6/dist-packages/keras/engine/training.py", line 789, in _standardize_user_data
exception_prefix='target')
File "/usr/local/lib/python3.6/dist-packages/keras/engine/training_utils.py", line 138, in standardize_input_data
str(data_shape))
ValueError: Error when checking target: expected reshape_2 to have shape (8,) but got array with shape (10,)






python cnn






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Mar 26 at 14:59









A.SDRA.SDR

132




132











  • $begingroup$
    did you try to convert your labels to categorical (one hot)? or you use 'sparse_categorical_crossentropy' as your loss function.
    $endgroup$
    – honar.cs
    Mar 26 at 20:07
















  • $begingroup$
    did you try to convert your labels to categorical (one hot)? or you use 'sparse_categorical_crossentropy' as your loss function.
    $endgroup$
    – honar.cs
    Mar 26 at 20:07















$begingroup$
did you try to convert your labels to categorical (one hot)? or you use 'sparse_categorical_crossentropy' as your loss function.
$endgroup$
– honar.cs
Mar 26 at 20:07




$begingroup$
did you try to convert your labels to categorical (one hot)? or you use 'sparse_categorical_crossentropy' as your loss function.
$endgroup$
– honar.cs
Mar 26 at 20:07










0






active

oldest

votes












Your Answer





StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
);
);
, "mathjax-editing");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "557"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f48037%2fcnn-reshape-problem%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Data Science Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f48037%2fcnn-reshape-problem%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Adding axes to figuresAdding axes labels to LaTeX figuresLaTeX equivalent of ConTeXt buffersRotate a node but not its content: the case of the ellipse decorationHow to define the default vertical distance between nodes?TikZ scaling graphic and adjust node position and keep font sizeNumerical conditional within tikz keys?adding axes to shapesAlign axes across subfiguresAdding figures with a certain orderLine up nested tikz enviroments or how to get rid of themAdding axes labels to LaTeX figures

Luettelo Yhdysvaltain laivaston lentotukialuksista Lähteet | Navigointivalikko

Gary (muusikko) Sisällysluettelo Historia | Rockin' High | Lähteet | Aiheesta muualla | NavigointivalikkoInfobox OKTuomas "Gary" Keskinen Ancaran kitaristiksiProjekti Rockin' High