Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow Keras TPU。编译失败:检测到不支持的操作_Tensorflow_Keras_Google Colaboratory_Google Cloud Tpu - Fatal编程技术网

Tensorflow Keras TPU。编译失败:检测到不支持的操作

Tensorflow Keras TPU。编译失败:检测到不支持的操作,tensorflow,keras,google-colaboratory,google-cloud-tpu,Tensorflow,Keras,Google Colaboratory,Google Cloud Tpu,我试着用Google Colab TPU运行我的keras UNet模型,我用UpSampling2D遇到了这个问题。有什么解决方案或解决办法吗 要运行的代码: import os import numpy as np import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import UpSampling2D model = Sequential(

我试着用Google Colab TPU运行我的keras UNet模型,我用
UpSampling2D
遇到了这个问题。有什么解决方案或解决办法吗

要运行的代码:

import os
import numpy as np
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import UpSampling2D

model = Sequential()
model.add(UpSampling2D((2, 2), input_shape=(16, 16, 1)))
model.compile(optimizer=tf.train.RMSPropOptimizer(learning_rate=0.01), 
              loss='binary_crossentropy', metrics=['acc'])

TPU_WORKER = 'grpc://' + os.environ['COLAB_TPU_ADDR']
tf.logging.set_verbosity(tf.logging.INFO)


model = tf.contrib.tpu.keras_to_tpu_model(
    model,strategy=tf.contrib.tpu.TPUDistributionStrategy(
        tf.contrib.cluster_resolver.TPUClusterResolver(TPU_WORKER)))

X = np.zeros((1024, 16, 16, 1))
Y = np.zeros((1024, 32, 32, 1))

model.fit(X, Y, batch_size=1024)
错误:

运行时错误:编译失败:检测到编译失败 尝试编译图形时不支持的操作 XLA_TPU_JIT上的群集3_5095732716396540171[]ResizeNearestNeighbor (没有为XLA\u TPU\u JIT注册的'ResizeNearestNeighbor'操作内核 与节点{{node]兼容的设备 TPU140211339657168/up_采样2D_1/ResizeNearestNeighbor}= ResizeNearestNeighbor[T=DT\u FLOAT,align\u corners=false, _device=“/device:TPU\U复制的\U核心”](进料序列\U 1:1,TPU\U 140211339657168/上采样2D\U 1/mul) .Registered:device='CPU';T in[DT_DOUBLE] device='CPU';T输入[DT_浮点] 设备='CPU';T在[DT_BFLOAT16] 设备='CPU';T in[DT_一半] device='CPU';T in[DT_INT8] 设备='CPU';T在[DT_UINT8] device='CPU';T输入[DT_INT16] 设备='CPU';T在[DT_UINT16] device='CPU';T输入[DT_INT32] device='CPU';T in[DT_INT64] ){{node tpu_140211339657168/up_sampling2d_1/ResizeNearestNeighbor}


从错误中可以看出,Keras的Tensorflow后端(
ResizeNearestNeighbor
)图中的一个操作当前与TPU不兼容。目前有少量Tensorflow ops不可用于TPU()

您可以查看与TPU兼容的Tensorflow ops的当前列表。您也可以使用张力板查看

作为一种解决方法,您可以尝试结合TPU兼容的Tensorflow ops来复制
ResizeNearestNeighbor
的行为。特别是,您可能对与TPU兼容的Op感兴趣