Ejemplo n.º 1
0
def getBatch(batchSize, path):
	allPaths = image.list_pictures(path)
	allIms = np.zeros((batchSize, 3, sampSize, sampSize))
	for i in xrange(batchSize):
		f1 = int(np.sign(np.random.rand() - .5))
		f2 = int(np.sign(np.random.rand() - .5))
		im = image.load_img(allPaths[int(np.random.rand() * len(allPaths))]).resize((newSize, newSize))
		r  = int(np.random.rand() * (newSize - sampSize))
		c  = int(np.random.rand() * (newSize - sampSize))
		im = im.crop((r, c, r + sampSize, c + sampSize))
		im = image.random_rotation(im, 5)
		allIms[i, :, :, :] = image.img_to_array(im)
		allIms[i, :, :, :] = allIms[i, :, ::-f1, ::-f2]
	return allIms/255.
Ejemplo n.º 2
0
                        default=False,
                        action='store_true')

    parser.add_argument('-v', '--verbose', default=False, action='store_true')

    parser.add_argument('--force', default=False, action='store_true')

    args = parser.parse_args()

    if not os.path.exists(args.outdir):
        os.makedirs(args.outdir)

    if args.input.endswith('.tsv') or args.input.endswith('.txt'):
        allPaths = np.loadtxt(args.input, dtype=str).tolist()
    else:
        allPaths = image.list_pictures(args.input)

    # Generate encodings
    if not args.encoding:
        # build CAE model
        def get_encoding(i):
            paths = split_paths[i]
            device = devices[i]

            tf.keras.backend.clear_session()
            os.environ["CUDA_VISIBLE_DEVICES"] = device

            cae = modelCAE(args.filterSize, args.poolSize, args.sampSize, 1,
                           args.weights)

            # build encode model
                  filterSize,
                  border_mode='same',
                  weights=cl.layers[12].get_weights()))
encode.add(MaxPooling2D(pool_size=(poolSize, poolSize)))
encode.add(Activation('relu'))
encode.add(Flatten())
encode.add(Dense(1024, weights=cl.layers[16].get_weights()))
encode.add(Activation('relu'))
encode.add(Dense(100, weights=cl.layers[18].get_weights()))
encode.add(Dropout(0.5))
encode.add(Activation('relu'))
encode.compile(loss='mse', optimizer='adam')

###############################

allPaths = image.list_pictures(imPath)
repAll = np.zeros((len(allPaths), 100))

for i in xrange(len(repAll)):
    for co in xrange(10):
        repAll[i, :] += sum(encode.predict(getOne(100, allPaths[i])))
    print(i)
repAll /= 1000.

K = 100
pca = PCA(n_components=K, whiten=True)
reduced = pca.fit_transform(repAll)
vari = pca.explained_variance_ratio_
nDims = np.where(np.cumsum(vari) > .98)[0][0]
# repAll = reduced[:,:nDims]
nDims = reduced.shape[1]
Ejemplo n.º 4
0
valFrac = float(sys.argv[2])  # fraction for validation
trnBalance = '1' == sys.argv[3]  # balance training set classes?

print('-' * 50)

print('Training Fraction:   ' + str(trnFrac))
print('Validation Fraction: ' + str(valFrac))
print('Testing Fraction:    ' + str(1 - trnFrac - valFrac))
print('-' * 50)
if trnBalance:
    print('Balancing Training Set')
else:
    print('Not Balancing Training Set')
print('-' * 50)

allPaths = np.asarray(image.list_pictures(imDir))
np.random.shuffle(allPaths)
numIms = len(allPaths)
trainIms = allPaths[:numIms * trnFrac]
testIms = allPaths[numIms * (trnFrac + valFrac):]
valIms = allPaths[numIms * trnFrac:numIms * (trnFrac + valFrac)]

# pull sample classes
labels = {}
classNames = {}
classIms = {}
classCount = 0
fi = open(classFile)
for lin in fi:
    im, cl = lin.strip('\n').split('\t')
    if cl in classNames: