资源localhost/total/N10tensorflow3VarE不存在 [英] Resource localhost/total/N10tensorflow3VarE does not exist

查看:138
本文介绍了资源localhost/total/N10tensorflow3VarE不存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在与Google Colab合作,并尝试使用VGG块训练模型.像这样:

I'm working with Google Colab and trying to train a model using VGG blocks. Like this:

METRICS = [
      keras.metrics.TruePositives(name='tp'),
      keras.metrics.FalsePositives(name='fp'),
      keras.metrics.TrueNegatives(name='tn'),
      keras.metrics.FalseNegatives(name='fn'), 
      keras.metrics.BinaryAccuracy(name='accuracy'),
      keras.metrics.Precision(name='precision'),
      keras.metrics.Recall(name='recall'),
      keras.metrics.AUC(name='auc'),
]

# function for creating a vgg block
def vgg_block(layer_in, n_filters, n_conv):
  # add convolutional layers
  for _ in range(n_conv):
    layer_in = Conv2D(n_filters, (3,3), padding='same', activation='relu')(layer_in)
  # add max pooling layer
  layer_in = MaxPooling2D((2,2), strides=(2,2))(layer_in)
  return layer_in

# define model input
visible = Input(shape=(256, 256, 3))
# add vgg module
layer = vgg_block(visible, 64, 2)

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


flat = Flatten()(layer)
hidden1 = Dense(128, activation='relu')(flat)
output = Dense(1, activation='sigmoid')(hidden1)
model = Model(inputs=visible, outputs=output)
print(model.summary())

# plot model architecture
plot_model(model, show_shapes=True, to_file='vgg_block.png')

model.compile(loss='binary_crossentropy',
            optimizer='rmsprop',
            metrics=METRICS)

# New lines to obtain the best model in term of validation accuracy
from keras.callbacks import ModelCheckpoint
filepath="weights-improvement-{epoch:02d}-{val_accuracy:.2f}.h5"
checkpoint = ModelCheckpoint(filepath, monitor='val_accuracy', verbose=1, save_best_only=True, mode='max')
callbacks_list = [checkpoint]

但是,当我尝试使用model.fit_generator时,它给了我一个错误.我正在使用的代码是:

But, when I try to use model.fit_generator it gives me an error. The code I'm using is:

history = model.fit_generator(
    train_generator,
    steps_per_epoch=2000 // batch_size,
    epochs=20,
    validation_data=validation_generator,
    validation_steps=800 // batch_size,
    callbacks=callbacks_list
)

我已经尝试了一切,但我不知道该怎么办.它给了我以下错误:

I have tried everything and I don't know what to do. It gives me the following error:

NotFoundError: 2 root error(s) found.
  (0) Not found: Resource localhost/total/N10tensorflow3VarE does not exist.
     [[{{node metrics/accuracy/AssignAddVariableOp}}]]
     [[metrics/precision/Mean/_87]]
  (1) Not found: Resource localhost/total/N10tensorflow3VarE does not exist.
     [[{{node metrics/accuracy/AssignAddVariableOp}}]]
0 successful operations.
0 derived errors ignored.

我将不胜感激.我是新来的.我能做什么?谢谢!

I would appreciate any help. I'm kind of new here. What could I do? Thanks!

推荐答案

似乎仅使用本机keras会出现问题,但是当我尝试实现您的代码并在 Tensorflow 2.x 中对其进行了修改时如下:

It seems the problem arises only using the native keras but when I tried to implement your code and modified it in Tensorflow 2.x as below:

%tensorflow_version 2.x

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.layers import Input, Conv2D, MaxPooling2D, Dense, Flatten
from tensorflow.keras.models import Model

METRICS = [
      keras.metrics.TruePositives(name='tp'),
      keras.metrics.FalsePositives(name='fp'),
      keras.metrics.TrueNegatives(name='tn'),
      keras.metrics.FalseNegatives(name='fn'), 
      keras.metrics.BinaryAccuracy(name='accuracy'),
      keras.metrics.Precision(name='precision'),
      keras.metrics.Recall(name='recall'),
      keras.metrics.AUC(name='auc'),
]

# function for creating a vgg block
def vgg_block(layer_in, n_filters, n_conv):
  # add convolutional layers
  for _ in range(n_conv):
    layer_in = Conv2D(n_filters, (3,3), padding='same', activation='relu')(layer_in)
  # add max pooling layer
  layer_in = MaxPooling2D((2,2), strides=(2,2))(layer_in)
  return layer_in

# define model input
visible = Input(shape=(256, 256, 3))
# add vgg module
layer = vgg_block(visible, 64, 2)

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


flat = Flatten()(layer)
hidden1 = Dense(128, activation='relu')(flat)
output = Dense(1, activation='sigmoid')(hidden1)
model = Model(inputs=visible, outputs=output)
print(model.summary())

# # plot model architecture
# plot_model(model, show_shapes=True, to_file='vgg_block.png')

model.compile(loss='binary_crossentropy',
            optimizer='rmsprop',
            metrics=METRICS)

# New lines to obtain the best model in term of validation accuracy
from tensorflow.keras.callbacks import ModelCheckpoint
filepath="weights-improvement-{epoch:02d}-{val_accuracy:.2f}.h5"
checkpoint = ModelCheckpoint(filepath, monitor='val_accuracy', verbose=1, save_best_only=True, mode='max')
callbacks_list = [checkpoint]


## Synthetic Inputs
train_input = tf.random.normal((100, 256, 256, 3))
train_output = tf.random.normal((100, 1))

# Test Model.fit same as Model.fit_generator in TF 2.1.0
model.fit(train_input, train_output, epochs = 1)

问题未出现,并且工作正常.您可以改为在TF 2.x中尝试此操作.我希望这可以解决您的问题.

The problem didn't show up and it is working properly. You can try this in TF 2.x instead. I hope this solved your problem.

这篇关于资源localhost/total/N10tensorflow3VarE不存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆