class Chainer::Serializers::MarshalSerializer

Attributes

path[RW]
target[RW]

Public Class Methods

new(target: nil, path: "", device: Chainer::Device.default) click to toggle source
# File lib/chainer/serializers/marshal.rb, line 16
def initialize(target: nil, path: "", device: Chainer::Device.default)
  @target = target.nil? ? {} : target
  @path = path
  @device = device
  @xm = device.xm
end
save_file(file_path, obj) click to toggle source

@param [string] file_path Target file path @param [Object] obj Object to be serialized

# File lib/chainer/serializers/marshal.rb, line 8
def self.save_file(file_path, obj)
  s = self.new
  s.save(obj)
  File.open(file_path, 'wb') do |f|
    Marshal.dump(s.target, f)
  end
end

Public Instance Methods

[](key) click to toggle source
# File lib/chainer/serializers/marshal.rb, line 23
def [](key)
  self.class.new(target: @target, path: File.join(@path, key, '/'))
end
call(key, value) click to toggle source
# File lib/chainer/serializers/marshal.rb, line 27
def call(key, value)
  ret = value
  if value.is_a?(TrueClass)
    arr = @xm::Bit[1]
  elsif value.is_a?(FalseClass)
    arr = @xm::Bit[0]
  elsif value.instance_of?(String) || value.nil?
    arr = value
  else
    arr = @xm::NArray.cast(value)
  end
  @target[File.join(@path, key)] = arr
  ret
end