在此处检查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) 在执行以下代码时:
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? 但同样的错误仍然存在。请帮忙。谢谢。
我在 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 与特定大小的固定线程池一起使用,这会实现吗?
我使用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 ×3
iteration ×1
java ×1
keras ×1
pickle ×1
python-2.7 ×1
rawimage ×1
scipy ×1
spring-boot ×1
tensorflow ×1
text-files ×1