def reduceLayerDimensionality(layer,index,inputDict): if layer.name.startswith(inputDict['ValidDimLayers']): # Must be either a single string or tuple of strings weights = layer.get_weights() pcaObj = PCA(matrix=weights[0]) weights[0] = pcaObj.filterMatrix(n=pcaObj.computeTargetPCs(targetRatio=inputDict['targetRatio'])) layer.set_weights(weights) message = "Layer {}: Reduced layer dimensionality".format(index) else: message = "Layer {}: Dimensionality unchanged".format(index) return(message)