Пример #1
0
def main(fnModel, fnVolIn, fnMask, sampling, fnVolOut):

  if fnModel=="default":
    fnModel= XmippScript.getModel("deepRes", "model_w13.h5")
  elif fnModel=="highRes":
    fnModel= XmippScript.getModel("deepRes", "model_w7.h5")

  model = load_model(fnModel)
  manager = VolumeManager(fnVolIn, fnMask)
  Y = model.predict_generator(manager, manager.getNumberOfBlocks())

  if fnModel == XmippScript.getModel("deepRes", "model_w13.h5"):
    model = 1
  if fnModel == XmippScript.getModel("deepRes", "model_w7.h5"):
    model = 2
  return produceOutput(fnVolIn, fnMask, model, sampling, Y, fnVolOut)
Пример #2
0
def generatePerceptualLoss(image_shape):
    from xmipp_base import XmippScript
    from keras.layers import Input
    from keras.models import load_model, Model
    import keras.backend as K
    effectiveSize = 50000
    ignoreCTF = True
    modelTypeDir = "keras_models/%sPhaseFlip_Invert/nnetData_%d/tfchkpoints_0" % (
        "no" if ignoreCTF else "", effectiveSize)
    modelTypeDir = XmippScript.getModel("deepConsensus", modelTypeDir)
    modelFname = os.path.join(modelTypeDir, "deepModel.hdf5")

    def perceptual_loss(y_true, y_pred):
        input_tensor = Input(image_shape[:-1] + (1, ))
        evalModel = load_model(modelFname)

        targetLayer = 'activation_4'
        out = input_tensor
        for layer in evalModel.layers[1:]:
            #      print(layer.name)
            out = layer(out)
            if layer.name == targetLayer: break

        loss_model = Model(inputs=input_tensor, outputs=out)
        loss_model.trainable = False
        return K.mean(K.square(loss_model(y_true) - loss_model(y_pred)))

    return perceptual_loss
Пример #3
0
    def run(self):

        params = " -i %s " % self.getParam('-i')
        if self.checkParam('-i2'):
            params += " -i2 %s " % self.getParam('-i2')

        params += " -o %s " % self.getParam('-o')

        if self.checkParam('--checkpoint'):
            params += " --deepLearningModelPath %s " % os.path.expanduser(
                self.getParam("--checkpoint"))
        else:
            params += " --deepLearningModelPath  %s " % XmippScript.getModel(
                "deepEMhancer",
                "production_checkpoints/deepEMhancer_tightTarget.hd5")

        if self.checkParam('--sampling_rate'):
            params += " --samplingRate %f" % self.getDoubleParam(
                '--sampling_rate')

        if self.checkParam('--binaryMask'):
            params += " --binaryMask %s " % (os.path.abspath(
                self.getParam('--binaryMask')))

        elif self.checkParam('--noise_stats_mean'):
            params += " --noiseStats %f %f " % (
                self.getDoubleParam('--noise_stats_mean'),
                self.getDoubleParam('--noise_stats_std'))

        if self.checkParam('--cleaningStrengh'):
            params += " --cleaningStrengh %f " % self.getDoubleParamWithDefault(
                '--cleaningStrengh', defaultVal=-1)

        params += "-g %s " % self.getParam("-g")
        params += "-b %s " % self.getParam("-b")

        cmd = "deepemhancer"
        print(cmd + " " + params)
        self.runCondaCmd(cmd, params)