summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormguetlein <martin.guetlein@gmail.com>2012-07-27 10:19:50 +0200
committermguetlein <martin.guetlein@gmail.com>2012-07-27 10:19:50 +0200
commitcd8800cf377b5b8c07dc25f3629e503f01bc9112 (patch)
treeeb39c8d58fc7192ceb822bfa5cfd64261230220c
parent14f49658a0b867b4cc68242804b530548d31097f (diff)
disable dataset cache when filtering
-rw-r--r--lib/dataset_cache.rb8
-rwxr-xr-xvalidation/validation_application.rb2
-rwxr-xr-xvalidation/validation_service.rb2
3 files changed, 9 insertions, 3 deletions
diff --git a/lib/dataset_cache.rb b/lib/dataset_cache.rb
index 7a13e9b..3f55167 100644
--- a/lib/dataset_cache.rb
+++ b/lib/dataset_cache.rb
@@ -4,17 +4,21 @@ module Lib
module DatasetCache
@@cache={}
+
+ def self.disable()
+ @@cache=nil
+ end
# same as OpenTox::Dataset.find with caching function
# rational: datasets are reused in crossvalidation very often, cache to save computational effort
# PENDING: may cause memory issues, test with huge datasets
def self.find(dataset_uri, subjectid=nil)
return nil if (dataset_uri==nil)
- d = @@cache[dataset_uri.to_s+"_"+subjectid.to_s]
+ d = @@cache[dataset_uri.to_s+"_"+subjectid.to_s] if @@cache
if d==nil
LOGGER.debug "loading dataset #{dataset_uri}"
d = OpenTox::Dataset.find(dataset_uri, subjectid)
- @@cache[dataset_uri.to_s+"_"+subjectid.to_s] = d
+ @@cache[dataset_uri.to_s+"_"+subjectid.to_s] = d if @@cache
end
d
end
diff --git a/validation/validation_application.rb b/validation/validation_application.rb
index eaa3ce2..9233502 100755
--- a/validation/validation_application.rb
+++ b/validation/validation_application.rb
@@ -587,7 +587,7 @@ post '/plain_training_test_split' do
split_features = params[:split_features].split(";") if params[:split_features]
result = Validation::Util.train_test_dataset_split(params[:dataset_uri], params[:prediction_feature], @subjectid,
params[:stratified], params[:split_ratio], params[:random_seed], params[:missing_values], task, split_features,
- params[:store_split_clusters])
+ params[:store_split_clusters]=="true")
content_type "text/uri-list"
res = result[:training_dataset_uri]+"\n"+result[:test_dataset_uri]+"\n"
LOGGER.info "plain training test split done #{res.to_s.gsub("\n"," \\n ")}"
diff --git a/validation/validation_service.rb b/validation/validation_service.rb
index a2e97d0..e099e25 100755
--- a/validation/validation_service.rb
+++ b/validation/validation_service.rb
@@ -273,6 +273,8 @@ module Validation
#self.prediction_data = nil
#self.save
+ Lib::DatasetCache.disable
+
raise OpenTox::BadRequestError.new "only supported for classification" if prediction!=nil and classification_statistics==nil
raise OpenTox::BadRequestError.new "illegal confidence value #{min_confidence}" unless
min_confidence==nil or (min_confidence.is_a?(Numeric) and min_confidence>=0 and min_confidence<=1)