WGAN gp keras github

wgan-gp-keras · GitHub Topics · GitHu

WGAN-GP - Tensorflow/Keras Implementation 7 분 소요 논문 WGAN-GP : Improved Training of Wasserstein GANs에 대한 tensorflow 코드 구현 입니다. 구현은 논문 4 페이지에 있는 아래의 Algorithm 1을 참고하였습니다. 이제 코드와 함께 설명을 하도록 하겠습니다 When I run the WGAN-GP tutorial from the Keras website, I notice that the first epoch takes a really long time to start in both CPU and GPU, up to a minute. Describe the expected behavior. The first epoch should start promptly, as it happens with the other tutorials. For example the VAE and traditional DCGAN. Standalone code to reproduce the issu wgan, wgan2(improved, gp), infogan, and dcgan implementation in lasagne, keras, pytorch - GitHub - tjwei/GANotebooks: wgan, wgan2(improved, gp), infogan, and dcgan. WGAN-GP overriding Model.train_step. Author: A_K_Nain Date created: 2020/05/9 Last modified: 2020/05/9 Description: Implementation of Wasserstein GAN with Gradient Penalty. View in Colab • GitHub sourc WGAN - Tensorflow/Keras Implementation 5 분 소요 논문 WGAN에 대한 tensorflow 코드 구현 입니다. 구현은 논문 8 페이지에 있는 아래의 Algorithm 1을 참고하였습니다. 이제 코드와 함께 설명을 하도록 하겠습니다

GitHub - LuEE-C/WGAN-GP-with-keras-for-text: My implementation of the 1d convolutional

WGAN-GP with R-GCN for the generation of small molecular graphs. Author: akensert Date created: 2021/06/30 Last modified: 2021/06/30 Description: Complete implementation of WGAN-GP with R-GCN to generate novel molecules. View in Colab • GitHub sourc WGAN-gp (keras) Python notebook using data from Generative Dog Images · 8,399 views · 2y ago data loading and clipping Function Image samples before clipping Convert Images to Train Data Image samples after clipping WGAN-gp Model Build Training Model Prepare Training Perform Training Submit WGAN-GP - Tensorflow/Keras Implementation 8 분 소요 논문 WGAN-GP : Improved Training of Wasserstein GANs에 대한 tensorflow 코드 구현 입니다

GitHub - kongyanye/cwgan-gp: A keras implementation of conditional wgan-g

  1. ator (aka the critic) lie within the space of 1-Lipschitz functions. The authors proposed the idea of weight clipping to.
  2. Wasserstein GAN with Gradient Penalty (WGAN-GP) (. article. ) WGAN-GP is a GAN that improves over the original loss function to improve training stability. [ ] ↳ 23 cells hidden
  3. GitHub; Instagram; 이메일 최근 포스트. Data 메모리 계산 최대 1 분 소요 0. bit와 byte WGAN-GP - Tensorflow/Keras Implementation 7 분 소요 논문 WGAN-GP : Improved Training of Wasserstein GANs에 대한 tensorflow 코드 구현 입니다. [나중에 읽을 것]BEST GAN Tricks 최대.
  4. 이번 포스팅에서는 wgan 및 wgan의 개선판(wgan-gp)에 대해서 설명한다. 1. gan의 문제점 - 학습이 어렵다. 기울기 손실 문제가 발생한다. - 생성 결과의 퀄리티를 손실함수로부터 판단하기 힘들다. - 모드.

WGAN-GP - Tensorflow/Keras Implementation 7 분 소요 논문 WGAN-GP : Improved Training of Wasserstein GANs에 대한 tensorflow 코드 구현 입니다 Hi there, I have opened the same issue in the TensorFlow github, as I am not sure where it fits better, but here it goes:. Describe the current behavior. When I run the WGAN-GP tutorial from the Keras website, I notice that the first epoch takes a really long time to start in both CPU and GPU, up to a minute.. Describe the expected behavior. The first epoch should start promptly, as it happens. x = upsample_block (x, 128, (3, 3)) x = upsample_block (x, 64, (3, 3)) x = upsample_block (x, 1, (3, 3), activation=Activation (tanh)) # At this point, we have an output which has the same shape as the input, (32, 32, 1). # We will use a Cropping2D layer to make it (28, 28, 1) The Elements of GANs, Part 2: Wasserstein GANs and the Gradient Penalty. Training GANs remains a bit of an art and one can easily find that small changes in architecture and training procedures make a huge difference to the end results. The effects of various tricks and techniques are not always predictable, but that's not to say that you can.

Keras-GAN/wgan_gp.py at master · jiajunhua/Keras-GAN · GitHu

I have implemented a conditional WGAN-GP which works fine for sampling digits from 0-9, but as soon as I want to sample a single digit I get dimensionality issues. noise = np.random.normal(0,1,(1,.. WGAN. 背景介绍. WGAN(Wasserstein Generative Adversarial Networks):于2017年提出,和LSGAN类似,没有对网络结构做太多修改,分析了GAN网络中判别器效果越好,生成器梯度消失越严重的问题,而且提出了一种新的损失函数,构建了一个更加稳定,收敛更快,质量更高的生成式对抗网络 Keras-GAN Collection of Keras implementations of Generative Adversarial Networks (GANs) suggested in research papers. These models are in some cases simplified versions of the ones ultimately described in the papers, but I have chosen to focus on getting the core ideas covered instead of getting every layer configuration right

wgan, wgan2(improved, gp), infogan, and dcgan implementation in lasagne, keras, pytorch Generative Adversarial Notebooks Collection of my Generative Adversarial Network implementations Most codes are for python3, most notebooks works on CycleGAN CycleGAN-lasagne CycleGAN-keras WGAN-gpについて理解するため、WGAN-gpを簡単な2次元問題に適用し、その挙動を観察してみました。また、GANとの違いを比較しました 前にGANでやったことの続きです。 簡単な2次元問題でGANの基礎理解を深める(python, keras) - st1990のblog 以下の検証に関するコードはgithub

< WGAN-GP : Improved Training of Wasserstein GANs > weight clipping → Gradient penalty 0. Abstract. WGAN에서 critic에 대해 Lipschitz constraint를 강요하기위한 weight clipping이 발생시키는 문제, 즉 undesired behavior로 이끌 수 있다 라는 것을 발견했다 选自Deeply Random. 机器之心编译. 参与:晏奇、李泽南. 在阅读论文 Wassertein GAN 时,作者发现理解它最好的办法就是用代码来实现其内容。于是在本文中,作者将用自己的在 Keras 上的代码来向大家简要介绍一下WGAN

Generative Multi-column Convolutional Neural Networks inpainting model in Keras. Keras implementation of GMCNN (Generative Multi-column Convolutional Neural Networks) inpainting model originally proposed at NIPS 2018: Image Inpainting via Generative Multi-column Convolutional Neural Networks. Model architecture. Installation. Code from this repository was tested on Python 3.6 and Ubuntu 14.0 本文是gan系列学习-前世今生第二篇,在第一篇中主要介绍了gan的原理部分,在此篇文章中,主要总结了常用的gan包括dcgan,wgan,wgan-gp,lsgan-began的详细原理介绍以及他们对gan的主要改进,并推荐了一些github代码复现链接 一、WGAN-GP解决的问题 WGAN中的weight clipping导致的参数集中化和调参上的梯度爆炸和梯度消失问题 WGAN-GP解决 了问题将参数与限制联系起来达到真实的Lipschitz限制条件 所以WGAN-GP的贡献是: 提出了一种新的lipschitz连续性限制手法—梯度惩罚,解决了训练梯度消失梯度爆炸的问

またRedditのWGANのスレッドにて、GANの考案者であるIan Goodfellow氏や本論文の著者Martin Arjovsky氏が活発に議論を交わしています。 Martin Arjovsky氏の実装がGithubで公開されていますので実装には困らないと思います。 私はChainer 1.20で実装しました I have implemented Improved WGAN-GP algorithm using keras. The dataset used is a gray-scale open street network images. Though the model converges in lesser number of iterations , the training res..


1.介绍 原始gan存在着训练困难、生成器和判别器的loss无法指示训练进程、生成样本缺乏多样性等问题。中间虽然有一序列gan想解决掉这些问题,但都是治标不治本的方案,直到WGAN的出现,并且作者从理论上证明怎么来解决这些问题,可见作者的数学功底是真的很强悍,更加详细的内容可参见论文. 有趣的是,我们的推导过程表明,WGAN-GP其实跟Wasserstein距离没有直接的联系,尽管当初WGAN的作者是从Wasserstein距离将它们推导出来的。 也就是说, WGAN跟W没啥关系,这就尴尬了,还能好好叫WGAN(Wasserstein GAN)么~ 另外,有人提问WGAN相比原始的GAN有什么优势 1.介绍 WGAN 虽然理论证明很完美,但真正的效果并没有很好,主要原因在于lipschitz连续性条件,本文所讲的 WGAN -GP就是针对lipschitz连续性条件而做的改进,更加详细的内容可参见论文:Improved Training of Wasserstein GAN s 2.模型结构 整个算法流程,我们注意这两点就行.

WGAN-GP - Tensorflow/Keras Implementation - ZZU's BLO

Han Zhang, Ian Goodfellow, Dimitris Metaxas and Augustus Odena, Self-Attention Generative Adversarial Networks. arXiv preprint arXiv:1805.08318 (2018). This repository provides a PyTorch implementation of SAGAN. Both wgan-gp and wgan-hinge loss are ready, but note that wgan-gp is somehow not compatible with the spectral normalization 一、wgan的分析从我们wgan的实现结果来看,wgan可以很好的生成图像。因此,我们来分析一下w距离和生成图像之间的关系。理论上距离越近,图像生成质量越高。就说明wgan的效果很好。在wgan的论文式样中对三种架构进行了实验。第一种是生成器采用普通的感知机 作成した keras 実装はこちらです. DCGAN の問題点. 効果的な飯テロを行うには画像の解像度は高い方がよいですが、高解像度の画像を DCGAN で作るのは難しいです。GAN の問題点についてはFrom GAN to WGANが詳しいので読むこと 我将WGAN-GP扩展为有条件的代码库:https://github.com/eriklindernoren/Keras-GAN/blob/master/wgan_gp/wgan_gp.py 当我训练模型时,似乎并没有以.

I am trying to implement a WGAN-GP model using Tensorflow and Keras (for credit card fraud data from kaggle).. I mostly followed the sample code that is provided in Keras website and several other sample codes on the internet (but changed them from image to my data), and it is pretty straightforward.. But when I want to update the critic, the gradient of loss w.r.t critic's weights becomes all. 介绍WGAN-GP方法前,先简单介绍一下WGAN,WGAN的损失函数如下:. 公式1. 这里需要注意的是,WGAN的提出是作者分析了一堆统计度量(KL散度,JS散度,TV距离,W距离等)后,得出Wasserstein距离(下简称W距离)最适合GAN的训练。. 按理说WGAN的损失函数就是一个分布到另. Keras-GAN: Keras implementations of Generative Adversarial Networks, GitHub. From GAN to WGAN, 2017. GAN - Wasserstein GAN & WGAN-GP, 2018. Improved WGAN, keras-contrib Project, GitHub. Wasserstein GAN, Reddit. Wasserstein GAN in Keras, 2017. Wasserstein GAN and the Kantorovich-Rubinstein Duality Least Squares Generative Adversarial Networks. Unsupervised learning with generative adversarial networks (GANs) has proven hugely successful. Regular GANs hypothesize the discriminator as a classifier with the sigmoid cross entropy loss function.. However, we found that this loss function may lead to the vanishing gradients problem during.

WGAN-GP Keras tutorial is slow to start the first epoch · Issue #48356 - GitHu

GitHub - LuEE-C/WGAN-GP-with-keras-for-text: My

GitHub - tjwei/GANotebooks: wgan, wgan2(improved, gp), infogan, and dcgan

本篇blog的内容基于原始论文WassersteinGAN-GP(NIPs2017)和《生成对抗网络入门指南》第五章。一、权重裁剪的问题(为什么要改进GP) WGAN理论中前提条件是1-Liposchitz条件,而对应使用的方法是权重剪裁,希望把网络固定在一个大小范围内 GitHub Gist: star and fork fabclmnt's gists by creating an account on GitHub Please refer to the Keras WGAN-GP Example if you want to know about Gradient penalty loss. The generator loss is really simple. It just uses Adversarial loss. You can find FULL code on my github repository. : はじめに. 前回の記事でwganおよび改良型wgan(wgan-gp)の説明をおこないました。 今回はkerasでの実装のポイントと生成結果について紹介します。 参考にしたコードは以下 tjwei/GANotebooks. 実装 discriminatorの学習のためのモデル定義. discriminatorの学習のための全体構造(discriminator_with_own_loss)を実装. GitHub repo. keras implementation of CAGAN can be found here. Notes about the implementation: In CAGAN paper, a description about implementation detail writes: In addition, we use always the last 6 channels of any intermediate layer (in both G and D) to store downsampled copies of the inputs

DCGAN、WGAN、WGAN-GP、LSGAN、BEGAN原理总结及对比 - bonelee - 博客园

WGAN-GP与WGAN的区别. 相比较WGAN,WGAN-GP不再使用clip野蛮的剪裁鉴别网络的梯度值,而是使用梯度惩罚来使梯度更新平滑,即满足1-lipschitz条件,解决了训练梯度消失梯度爆炸的问题。. WGAN视频讲解参考. 1 使用随机方式把真实图片和伪造图片混合在一起。. class. Apr 12, 2019 - Contribute to LynnHo/DCGAN-LSGAN-WGAN-GP-DRAGAN-Tensorflow-2 development by creating an account on GitHub

I am trying to implement WGAN in Keras. I am using David Foster's Generative Deep Learning Book and this code as reference. I wrote down this simple code. However, whenever I start training the model, the accuracy is always 0 and the losses for Critic and Discriminator are ~0. They are stuck at these number no matter how many epochs they train for 当 n=1,p=2 时这就是 wgan-gp 的梯度惩罚,作者说它不是一个散度,明摆着要跟 wgan-gp 对着干。 不是散度意味着 WGAN-GP 在训练判别器的时候,并非总是会在拉大两个分布的距离(鉴别者在偷懒,没有好好提升自己的鉴别技能),从而使得训练生成器时回传的梯度不准 WGAN setup. You can use the wasserstein surrogate loss implementation below. Clip discriminator weights by implementing your own keras constraint. class WeightClip(keras.constraints.Constraint): def __init__(self, c): self.c = c def __call__(self, p): return K.clip(p, -self.c, self.c) def get_config(self) gan系列学习(2)——前生今世 本文已投稿至微信公众号--机器学习算法工程师,欢迎关注 1; 2; 本文是gan系列学习-前世今生第二篇,在第一篇中主要介绍了gan的原理部分,在此篇文章中,主要总结了常用的gan包括dcgan,wgan,wgan-gp,lsgan-began的详细原理介绍以及他们对gan的主要改进,并推荐了一些github代码. $ cd implementations/wgan_gp/ $ python3 wgan_gp.py. 本文分享自微信公众号 - 机器之心(almosthuman2014 17种GAN变体的Keras实现请收好 | GitHub.

其中,提出了一个wgan-gp架构来产生单变量综合金融时间序列。 所提出的架构是线性和卷积层在G和D中的混合,并且它是开箱即用的 。 不幸的是,尽管最初的WGAN-GP文件明确规定了 无critic批量标准化 ,但在这种设置下,训练看起来并不十分稳定,并且使用批处理规范化(BN)来实现D Github项目推荐 | GAN评估指标的Tensorflow简单实现。Name - 名称Description - 描述Performance score - 评分Inception scoreKL-Divergence between conditional and marginal label distributions over generated data KL-散度上条件和边缘标签分布在生成数据上的差异。评分越高越好Frechet-Inception distanceWasserstein-2 distance between multi-variate Gaussians.

GanotebooksGitHub - eriklindernoren/Keras-GAN: Keras implementations

Keras documentation: WGAN-GP overriding `Model

【新智元导读】 作者用 dcgan,wgan,wgan-gp 和 lsgan 等生成对抗网络(gan),使用拥有1万张猫的图片的 cat 数据集做生成猫咪的脸... 新智元 17种GAN变体的Keras实现请收好 | GitHub热门开源代 Implemented in 93 code libraries. Stay informed on the latest trending ML papers with code, research developments, libraries, methods, and datasets. Read previous issue This project uses the following python libraries: Keras with the TensorFlow backend, numpy, SciPy, and imageio. The dataset currently being used is the IMM Face Database. Citation: @TECHREPORT{IMM2004-03160, author = M. M. Nordstr{\o}m and M. Larsen and J. Sierakowski and M. B. Stegmann Increasingly large, positive WGAN-GP loss. I'm investigating the use of a Wasserstein GAN with gradient penalty in PyTorch, but consistently get large, positive generator losses that increase over epochs. I'm heavily borrowing from Caogang's implementation, but am using the discriminator and generator losses used in this implementation because.

WGAN - Tensorflow/Keras Implementation - ZZU's BLO

We propose an alternative generator architecture for generative adversarial networks, borrowing from style transfer literature. The new architecture leads to an automatically learned, unsupervised separation of high-level attributes (e.g., pose and identity when trained on human faces) and stochastic variation in the generated images (e.g., freckles, hair), and it enables intuitive, scale. Conditional GAN. Author: Sayak Paul Date created: 2021/07/13 Last modified: 2021/07/15 View in Colab • GitHub source. Description: Training a GAN conditioned on class labels to generate handwritten digits. Generative Adversarial Networks (GANs) let us generate novel image data, video data, or audio data from a random input. Typically, the random input is sampled from a normal distribution. jleinonen/keras-fid Include the markdown at the top of your GitHub README.md file to showcase the performance of the model. TTUR improves learning for DCGANs and Improved Wasserstein GANs (WGAN-GP) outperforming conventional GAN training on CelebA, CIFAR-10, SVHN, LSUN Bedrooms, and the One Billion Word Benchmark. read more GAN的发展系列一(CGAN、DCGAN、WGAN、WGAN-GP、LSGAN、BEGAN) 在上一篇文章中我们介绍了GAN的原理(GAN生成对抗网络入门介绍),生成对抗网络GAN主要由两部分组成,生成网络Generator和判别网络Discriminator,生成模型G的思想是将一个随机噪声包装成一个逼真的样本,判别模型D则需要判断输入的样本是真实. 总而言之,wgan的前传从理论上研究了gan训练过程中经常出现的两大问题:g的梯度消失、训练不稳定。并且提出了利用地动距离来衡量pr和pg的相似性、对d的输入引入噪声来解决gan的两大问题,作者证明了地动距离具有上界,并且上界可以通过有效的措施逐步减小

python - Implementation of conditional WGAN-GP in Keras - Stack Overflo

初始化损失. 由于 GAN 比较不稳定,首先先训练一个 epoch 的一致性损失:. NOTE: 这里我用了 MobileNetV2 ,原作者使用 VGG19 ,实际训练并无多大差别,还有就是 weights 的使用,实际上在我做互信息的时候,仅初始化过得模型对于输入输出的映射是更加单一的,所以. I'm following this guide to build a BERT model to handle the Toxic Comments Dataset from Kaggle. I'm wondering how I might go about implement K-Fold cross-validation as opposed to having the single training and validation dataloaders. I see some answers on creating cross validation in PyTorch using DataLoaders, a guide on cross validation in PyTorch, etc., but I'm wondering if there's anything. I really would like to implement this improved wgan in keras too, and I'm surprised to see how you solved your issue. Did you verify trought experiments that your wgan-gp loss is working as intended? It should be easy to check, it is a so stable training that enable you the use of very deep discriminator ;) I would like to do the same work done by you but with tensorflow backend, and I will. WGAN-GP method claims that it is more powerful than the other 3 methods i.e. historical method, Variance-Covariance method, and Monte Carlo method for calculating risk in RMS. Specifically, WGAN-GP will allow us to deal with potentially complex financial services data such that we do not have to explicitly specify a distribution such as a multidimensional Gaussian distribution which is used in.


The Wasserstein Generative Adversarial Network, or Wasserstein GAN, is an extension to the generative adversarial network that both improves the stability when training the model and provides a loss function that correlates with the quality of generated images. The development of the WGAN has a dense mathematical motivation, although in practice requires only a few minor modifications to the. [논문읽기] 11. WGAN-GP : Improved Training of Wasserstein GANs < WGAN-GP : Improved Training of Wasserstein GANs >weight clipping → Gradient penalty0. AbstractWGAN에서 critic에 대해 Lipschitz constraint를 강요하기위한 weight clipping이 발생시키는 문제, 즉 undesired behavior로 이끌 수 있다 라는 것을 발견했다 Variational AutoEncoder. Author: fchollet Date created: 2020/05/03 Last modified: 2020/05/03 Description: Convolutional Variational AutoEncoder (VAE) trained on MNIST digits. View in Colab • GitHub sourc Keras documentation. About Keras Getting started Developer guides Keras API reference Code examples Computer Vision Natural Language Processing Structured Data Timeseries Audio Data Generative Deep Learning Reinforcement Learning Graph Data Quick Keras Recipes WGAN-GP with R-GCN for the generation of small molecular. Top 10 GitHub Papers :: Image generation. Image generation is the process of generating new images from an existing dataset. For example, DeepFake which are artificial media in which a person in an existing image or video is replaced with someone else's likeness. They are different types of generations which are Unconditional generation and.

実験2 • 様々な構造下で実験すると、WGAN-GPのみが全パターンで成功 - WGAN-GPの汎用性(ロバストネス) 14 15. 実験3 • 自然文の生成(Character Level)もできる - Prが離散的でも学習できる(従来のGANではJSDが発散するので失敗する) 15 16 Improved Training of Wasserstein GANs Ishaan Gulrajani 1⇤, Faruk Ahmed, Martin Arjovsky2, Vincent Dumoulin 1, Aaron Courville,3 1 Montreal Institute for Learning Algorithms 2 Courant Institute of Mathematical Sciences 3 CIFAR Fellow igul222@gmail.com {faruk.ahmed,vincent.dumoulin,aaron.courville}@umontreal.ca ma4371@nyu.edu Abstract Generative Adversarial Networks (GANs) are powerful. Keras에 대해 박해선이(가) 작성한 글. 약 1년 전 케라스는 내부 구현을 모두 텐서플로로 리다이렉션하는 2.4 버전을 릴리스하면서 멀티 백엔드 케라스 버전의 종료를 알렸습니다. 향후에 keras-team/keras 저장소는 텐서플로 백엔드 전용 케라스가 되고 tf.keras가 keras-team/keras를 사용할 것으로 예상되었습니다 Introduction Let's think about the way human understand sentence. We read the sentence from left to right (it is not the case in the ancient asisan culture though) word by word memorizing the meaning of words first. Words themselves may have very different meaning depending where they are placed or how they were used. To understand real meaning of words, we break the sentence down into. How to Implement the Progressive Growing GAN Discriminator Model. The discriminator model is given images as input and must classify them as either real (from the dataset) or fake (generated). During the training process, the discriminator must grow to support images with ever-increasing size, starting with 4×4 pixel color images and doubling to 8×8, 16×16, 32×32, and so on

WGAN-GP-Mnist.ipynb · GitHu

使用gan进行异常检测——可以进行网络流量的自学习哇,哥哥,人家是半监督,无监督的话,还是要vae,sae Overview. Keras is a high-level neural networks API developed with a focus on enabling fast experimentation.Being able to go from idea to result with the least possible delay is key to doing good research. Keras has the following key features: Allows the same code to run on CPU or on GPU, seamlessly. User-friendly API which makes it easy to quickly prototype deep learning models 実際WGAN-GP(WGANの改良版)はBackpropを2回走らせないといけないので計算が遅かったりします。 その上で、Spectral Normでは DのBatch NormをSpectral Normという特別なNormalizationレイヤーに置き換える ということで、この制約を実現しています

GitHub - natuan310/scale-recurrent-network-images

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語 python WGAN.py --input_folder your_input_folder_64x64 --output_folder your_output_folder $ # Generate 64x64 cats using WGAN-GP $ python WGAN-GP.py --input_folder your_input_folder_64x64 --output json (11) keras (13) linux. Code examples. Our code examples are short (less than 300 lines of code), focused demonstrations of vertical deep learning workflows. All of our examples are written as Jupyter notebooks and can be run in one click in Google Colab, a hosted notebook environment that requires no setup and runs in the cloud.Google Colab includes GPU and TPU runtimes WGAN-gpについて理解するため、WGAN-gpを簡単な2次元問題に適用し、その挙動を観察してみました。また、GANとの違いを比較しました 前にGANでやったことの続きです。 簡単な2次元問題でGANの基礎理解を深める(python, keras) - st1990のblog 以下の検証に GitHub Gist: star and fork SuoXC's gists by creating an account on GitHub. View wgan_gp_loss.py. import tensorflow as tf: def gradient_panalty (real, fake, convert keras or tensorflow or tensorflow-keras model to a predictable saved_model for tensorflow-serving and python predicto