小编KCK*_*KCK的帖子

类型错误:无法pickle _thread.RLock 对象

在此处检查Stackoverflow 上的所有现有答案后:Checkpointing keras model: TypeError: can't pickle _thread.lock objects和此处:TypeError: can't pickle _thread.lock objects,我还没有发现为什么这不起作用或者我的情况有什么问题。

我正在使用 Python 3。这是我的模型构建函数:

def upsample_and_concat(x1,x2,output_channels,in_channels,layer):
  pool_size = 2
  deconv_filter = tf.Variable(tf.truncated_normal([pool_size, pool_size, output_channels, in_channels], stddev=0.02))
  deconvtf=tf.nn.conv2d_transpose(x1, deconv_filter, tf.shape(x2), strides=[1, pool_size, pool_size, 1])
  deconv_output = tf.concat([deconvtf, x2], 3)
  deconv_output.set_shape([None, None, None, output_channels * 2])
  return deconv_output

def Depth_to_space_tf(input):
  return tf.depth_to_space(input, 2)
  
def build_model():
  inputs=keras.layers.Input(shape=(None, None, 4))
  
  conv1=keras.layers.Conv2D(filters=256,kernel_size=(3,3),strides=(1,1),padding='same',name='conv1_1')(inputs)
  conv1=keras.layers.LeakyReLU(alpha=0.2,name='conv1_1_relu')(conv1)
  conv1=keras.layers.Conv2D(filters=256,kernel_size=(3,3),strides=(1,1),padding='same',name='conv1_2')(conv1)
  conv1=keras.layers.LeakyReLU(alpha=0.2,name='conv1_2_relu')(conv1)
  pool1=keras.layers.MaxPooling2D(pool_size=(2,2),padding="same",name='pool1')(conv1)

  conv2=keras.layers.Conv2D(filters=512,kernel_size=(3,3),strides=(1,1),padding='same',name='conv2_1')(pool1)
  conv2=keras.layers.LeakyReLU(alpha=0.2,name='conv2_1_relu')(conv2)
  conv2=keras.layers.Conv2D(filters=512,kernel_size=(3,3),strides=(1,1),padding='same',name='conv2_2')(conv2)
  conv2=keras.layers.LeakyReLU(alpha=0.2,name='conv2_2_relu')(conv2)

  up6=keras.layers.core.Lambda(upsample_and_concat,arguments={'x2':conv1,'output_channels':256,'in_channels':512,'layer':'upsample_concat_1'},name='upsample_concat_1')(conv2)
  conv6=keras.layers.Conv2D(filters=256,kernel_size=(3,3),strides=(1,1),padding='same',name='conv6_1')(up6)
  conv6=keras.layers.LeakyReLU(alpha=0.2,name='conv6_1_relu')(conv6)
  conv6=keras.layers.Conv2D(filters=256,kernel_size=(3,3),strides=(1,1),padding='same',name='conv6_2')(conv6)
  conv6=keras.layers.LeakyReLU(alpha=0.2,name='conv6_2_relu')(conv6)
  
  conv7=keras.layers.Conv2D(filters=12,kernel_size=(1,1),strides=(1,1),name='conv10')(conv6)

  predictions …
Run Code Online (Sandbox Code Playgroud)

python pickle conv-neural-network keras tensorflow

10
推荐指数
1
解决办法
3640
查看次数

AttributeError: 模块 'scipy.misc' 没有属性 'toimage'

在执行以下代码时:

scipy.misc.toimage(output * 255, high=255, low=0, cmin=0, cmax=255).save(
    params.result_dir + 'final/%5d_00_%d_out.png' % (test_id, ratio))
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

AttributeError: 模块 'scipy.misc' 没有属性 'toimage'

我尝试按照此处所述安装 Pillow:scipy.misc module has no attribute imread? 但同样的错误仍然存​​在。请帮忙。谢谢。

python scipy python-imaging-library rawimage

10
推荐指数
1
解决办法
2万
查看次数

使用@Async 注释限制线程数并在达到最大线程数时等待

我在 AsyncConfigurer 中使用 Spring 的 Java 配置:

@Configuration
@EnableAsync
public class AppConfig implements AsyncConfigurer {

@Override
public Executor getAsyncExecutor() {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(2);
        executor.setMaxPoolSize(2);
        executor.setQueueCapacity(10);
        executor.setThreadNamePrefix("MyExecutor-");
        executor.initialize();
        return executor;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在假设我有一个带有 @Async 注释的方法,并假设它已经被调用了 2 次并且 2 个线程仍在运行。根据我的理解,对它的任何新调用都将添加到容量为 10 的队列中。现在如果我收到第 11 个任务,它的行为会是什么?它会拒绝此处所述的任务:https : //docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html?或者调用者会等待队列槽变空吗?

我的要求是不执行使用 @Async 方法产生的固定线程数,并在达到最大线程数时让调用者等待。如果我将 ConcurrentTaskExecutor 与特定大小的固定线程池一起使用,这会实现吗?

java multithreading threadpoolexecutor spring-boot

5
推荐指数
1
解决办法
2795
查看次数

最小和最大函数返回不正确的值

我使用python 2.7来查找文本文件中的最高和最低值.

文本文件的格式简单,每行都有一个Integer值.以下代码从文件中收集数字:

with open(data_file, 'r') as f:
    data_list = f.readlines()
Run Code Online (Sandbox Code Playgroud)

然后我尝试达到最大值和最小值:

max_value =  max(data_list)
min_value = min(data_list)
print('Max value: '+ str(max_value) + ' Min value: ' + str(min_value))
Run Code Online (Sandbox Code Playgroud)

然后我从印刷品得到的是:最大值:8974最小值:11239

最大值如何大于最小值?我也尝试打印整个列表,并且有比上述更高和更低的值.在文本文件中,还有比上述更高和更低的值.

我觉得我对python的理解可能存在根本性的错误,请帮助我找出我的误解.

python iteration text-files python-2.7

3
推荐指数
1
解决办法
6793
查看次数